home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Information / Digests / CSMP Digest / volume 3 / csmp-digest-v3-061 / doubleCR.1 < prev   
Encoding:
Text File  |  1995-12-31  |  217.0 KB  |  5,528 lines

  1. C.S.M.P. Digest             Thu, 29 Sep 94       Volume 3 : Issue 61
  2.  
  3. Today's Topics:
  4.  
  5.         Alpha Wordcompletion Script
  6.         Appending data to WindowRecord
  7.         Dialogs and (de)activate events
  8.         Lets talk OpenDoc
  9.         Linking with QuickTime.xcoff for the power pc
  10.         Multiple monitors
  11.         The 'aete' resource and the Script Editor
  12.         can extensions send appleevents?
  13.  
  14.  
  15.  
  16. The Comp.Sys.Mac.Programmer Digest is moderated by Francois Pottier
  17. (pottier@clipper.ens.fr).
  18.  
  19. The digest is a collection of article threads from the internet newsgroup
  20. comp.sys.mac.programmer.  It is designed for people who read c.s.m.p. semi-
  21. regularly and want an archive of the discussions.  If you don't know what a
  22. newsgroup is, you probably don't have access to it.  Ask your systems
  23. administrator(s) for details.  If you don't have access to news, you may
  24. still be able to post messages to the group by using a mail server like
  25. anon.penet.fi (mail help@anon.penet.fi for more information).
  26.  
  27. Each issue of the digest contains one or more sets of articles (called
  28. threads), with each set corresponding to a 'discussion' of a particular
  29. subject.  The articles are not edited; all articles included in this digest
  30. are in their original posted form (as received by our news server at
  31. nef.ens.fr).  Article threads are not added to the digest until the last
  32. article added to the thread is at least two weeks old (this is to ensure that
  33. the thread is dead before adding it to the digest).  Article threads that
  34. consist of only one message are generally not included in the digest.
  35.  
  36. The digest is officially distributed by two means, by email and ftp.
  37.  
  38. If you want to receive the digest by mail, send email to listserv@ens.fr
  39. with no subject and one of the following commands as body:
  40.     help                        Sends you a summary of commands
  41.     subscribe csmp-digest Your Name    Adds you to the mailing list
  42.     signoff csmp-digest            Removes you from the list
  43. Once you have subscribed, you will automatically receive each new
  44. issue as it is created.
  45.  
  46. The official ftp info is //ftp.dartmouth.edu/pub/csmp-digest.
  47. Questions related to the ftp site should be directed to
  48. scott.silver@dartmouth.edu. Currently no previous volumes of the CSMP
  49. digest are available there.
  50.  
  51. Also, the digests are available to WAIS users.  To search back issues
  52. with WAIS, use comp.sys.mac.programmer.src. With Mosaic, use
  53. http://www.wais.com/wais-dbs/comp.sys.mac.programmer.html.
  54.  
  55.  
  56. -------------------------------------------------------
  57.  
  58. >From tnleeuw@cs.vu.nl (Leeuw van der TN)
  59. Subject: Alpha Wordcompletion Script
  60. Date: Thu, 15 Sep 1994 12:09:12 GMT
  61. Organization: Fac. Wiskunde & Informatica, VU, Amsterdam
  62.  
  63. #This is a Tcl 'script'/procedure for use with Pete Keleher's Alpha.
  64. #It completes any word you have typed previously if you bind it to a key.
  65. #(I have it bound to opt-/ to simulate emacs' alt-/)
  66. #See the comments below for some more info. I've tested it as good as I
  67. #can, but cannot guarantee it is bug free. It had some bugs that appeared
  68. #to crash Alpha because it came into an endless loop; press cmd-. if
  69. #that happens. I don't think it will.
  70.  
  71. #If you use Alpha, then Have luck with it!
  72. #--Tim van der Leeuw
  73. #  tnleeuw@cs.vu.nl
  74. #===========================================================================
  75. # 'Word Completion', in the spirit of Paul van Mulbregt's BBXT.
  76. # Composed by Mark Nagata (nagata@kurims.kyoto-u.ac.jp) 
  77. # for Alpha 5.76, 4/22/94.
  78. # Modified by Tim van der Leeuw (tnleeuw@cs.vu.nl), 9/14/94,
  79. # In the spirit of emacs.
  80. # I have modified this routine extensively to add the ability to complete
  81. # a word in multiple ways if called repeatedly.
  82. # For this purpose, I have introduced all the global variables (starting with
  83. # __wc__) and added the first if-statement -- everything between
  84. # 'set pos [getPos]' and 'backwardWord'. In the original routine, I've changed
  85. # some existing variables to globals, prefixing their name with '__wc__'.
  86. #
  87. # This code is probably not the most efficient tcl-code, nor the most elegant
  88. # tcl-code for this problem, but hey, it is the first function I've ever
  89. # written in tcl!
  90. # If anyone has some suggestions for improvement, or
  91. # knows of a better algorithm, I would like to know it.
  92. #================================================================================
  93. set __wc__insPos -1
  94. proc wordCompletion {} {
  95.     global __wc__len __wc__prevPos __wc__insPos __wc__prevFound __wc__pat __wc__nextStart __wc__fwd
  96.     
  97.     set pos [getPos]
  98.     if $pos==$__wc__insPos {
  99.         # Cursor changed place?
  100.         set skipStr $__wc__prevFound
  101.         while 1 {    
  102.             if $__wc__fwd {
  103.                 set fndMsg "found below."
  104.             } else {
  105.                 set fndMsg "found above."
  106.             }
  107.             if {![catch {search -f $__wc__fwd -r 1 -i 0 -m 1 -- $__wc__pat $__wc__nextStart} data]} {
  108.                 set d00 [lindex $data 0]
  109.                 set beg [expr $d00+$__wc__len]
  110.                 set end [lindex $data 1]
  111.                 set __wc__prevFound [getText $d00 $end]
  112.                 if [string compare $skipStr $__wc__prevFound] {
  113.                     # Have we got the same word twice?
  114.                     set txt [getText $beg $end]
  115.                     deleteText $__wc__prevPos $__wc__insPos
  116.                     goto $__wc__prevPos
  117.                     insertText $txt
  118.                     message $fndMsg
  119.                     # Set a number of globals for possible next go-around
  120.                     set __wc__insPos [getPos]
  121.                     if $__wc__fwd {
  122.                         # Search Forwards
  123.                         set __wc__nextStart $end
  124.                         # End of found word
  125.                     } else {
  126.                         # Search Backwards
  127.                         set __wc__nextStart [expr $d00 - $__wc__len]
  128.                         # Before start of found word
  129.                         if $__wc__nextStart<=0 {
  130.                             set __wc__fwd 1
  131.                             set __wc__nextStart $__wc__insPos
  132.                         }
  133.                     }
  134.                     return
  135.                 } else {
  136.                     # Move start of search after finding string again
  137.                     if $__wc__fwd {
  138.                         # Searching Forwards
  139.                         set __wc__nextStart $end
  140.                         # End of found word
  141.                     } else {
  142.                         # Still Searching Backwards
  143.                         set __wc__nextStart [expr $d00 - $__wc__len]
  144.                         # Before start of found word
  145.                         if $__wc__nextStart<=0 {
  146.                             set __wc__fwd 1
  147.                             set __wc__nextStart $__wc__insPos
  148.                         }
  149.                     }
  150.                 }
  151.                 # End if string compare 
  152.             } else {
  153.                 # Search string not found
  154.                 if $__wc__fwd {
  155.                     # We were already looking forward, so the word is not in the file
  156.                     message "Not found."
  157.                     set __wc__insPos -1
  158.                     goto $pos
  159.                     backwardWordSelect
  160.                     return
  161.                 } else {
  162.                     # start looking forward
  163.                     set __wc__fwd 1
  164.                     set __wc__nextStart $__wc__insPos
  165.                 }
  166.             }
  167.             
  168.         }
  169.     }
  170.     backwardWord
  171.     # Start new search for WordCompletion
  172.     set start [getPos]
  173.     set one [getText $start $pos]
  174.     set __wc__len [expr $pos-$start]
  175.     set __wc__pat [append one {[a-zA-Z0-9_]+}]
  176.     set start [expr $start-1]
  177.     if {![catch {search -f 0 -r 1 -i 0 -m 1 -- $__wc__pat $start} data]} {
  178.         set d00 [lindex $data 0]
  179.         set beg [expr $d00+$__wc__len]
  180.         set end [lindex $data 1]
  181.         set __wc__prevFound [getText $d00 $end ]
  182.         set txt [getText $beg $end]
  183.         goto $pos
  184.         insertText $txt
  185.         message "found above."
  186.         # Set a number of globals for possible next go-around
  187.         set __wc__insPos [getPos]
  188.         set __wc__prevPos $pos
  189.         set __wc__nextStart [expr $d00-$__wc__len]
  190.         set __wc__fwd 0
  191.         return
  192.     }
  193.     if {![catch {search -f 1 -r 1 -i 0 -m 1 -- $__wc__pat $pos} data]} {
  194.         set __wc__prevFound [getText [lindex $data 0] [lindex $data 1] ]
  195.         set beg [expr [lindex $data 0]+$__wc__len]
  196.         set end [lindex $data 1]
  197.         set txt [getText $beg $end]
  198.         goto $pos
  199.         insertText $txt
  200.         message "found below."
  201.         # Set a number of globals for possible next go-around
  202.         set __wc__insPos [getPos]
  203.         set __wc__prevPos $pos
  204.         set __wc__nextStart $end
  205.         set __wc__fwd 1
  206.         return
  207.     }
  208.     goto $pos
  209.     backwardWordSelect
  210. }
  211.  
  212.  
  213.  
  214. # This is all due to the idea of Paul van Mulbregt. In his documentation 
  215. # of his BBEdit BBExtension (info-mac/text/bbedit-fl-package-11.hqx), 
  216. # he explains:
  217. # --  From the documentation written by        --
  218. # --  Paul van Mulbregt (paulvm@dragonsys.com) --
  219. # Word Completion
  220. # This extension saves typing, as well as making sure variable names are 
  221. # correct.  While typing the following C code, there is no need to type all 
  222. # of the second occurrence of verySpecialInt.  One could copy and paste, but 
  223. # another way is to type a few letters, and select the Word Completion 
  224. # Extension.
  225. #     int verySpecialInt = 10;
  226. #     while(verySp                                                    
  227. # becomes
  228. #     int verySpecialInt = 10;
  229. #     while(verySpecialInt                                             
  230. #                                                     
  231. # Word Completion will look back in the code to find the first match and then 
  232. # extend the current occurrence to match the previous occurrence.  If a match 
  233. # is not found looking backwards, then it looks forwards.  If not found 
  234. # forwards, the word is selected.  This is a quick way to save on typing, 
  235. # good for helping prevent RSI, but perhaps more importantly, to make sure 
  236. # that variable names are spelt correctly.
  237. # There is no user interface for Word Completion.
  238. # The usefulness of this extension is greatly enhanced if the extension is 
  239. # bound to a key!
  240. # -- end of Paul van Mulbregt's explanation. --
  241.  
  242.  
  243.  
  244.  
  245. ---------------------------
  246.  
  247. >From rollin@newton.apple.com (Keith Rollin)
  248. Subject: Appending data to WindowRecord
  249. Date: Tue, 30 Aug 1994 09:42:08 -0800
  250. Organization: Apple ][ -> Mac -> Taligent -> Newton -> Windows?
  251.  
  252. In article <33do4d$abh@newsy.ifm.liu.se>, jonasw@lysator.liu.se (Jonas
  253. Wallden) wrote:
  254. >
  255. >A great way to extend WindowRecords is to declare your own data type with
  256. >a WindowRecord as the first item.
  257. >
  258. >E.g.,
  259. >
  260. >struct tMyWinData {
  261. >   //  This must come first!
  262. >   WindowRecord   winRec;
  263. >
  264. >   //  Additional window-specific data here...
  265. >   Handle         aHandle;
  266. >   Ptr            aPtr;
  267. >};
  268. >typedef struct tMyWinData tMyWinData;
  269. >typedef tMyWinData *tMyWinPtr;
  270. >
  271. >The trick now is that you can typecast any window pointer to tMyWinPtr (and
  272. >back) and access your window-specific data fields. You might want to place
  273. >your application's unique creator code in the WindowRecord refCon field and
  274. >check it first to be sure you have a window that belongs to your program.
  275. >
  276. >I use this all the time and it is useful in many other places where the
  277. >system gives you a pointer to an object (VBL tasks, ParamBlocks, ...) and
  278. >you need to store extra data. No need to use any globals for this stuff!
  279.  
  280. You know, this is an often-used trick, but I've got a sneaking suspicion
  281. that it might not be a good idea in the long run. The reason for this
  282. feeling is because of something I read in "develop" a while back. In the
  283. article that Dean Yu (I think) wrote on floating windows, there was
  284. mention of converting the Windows.h interfaces over to using WindowRefs
  285. instead of WindowPtrs. (Indeed, users of ETO #15 will see that this change
  286. has already occured.) This change was being done to prepare developers for
  287. the day when windows would change from being accessed directly via
  288. pointers, to the day when they would be accessed via abstract references
  289. that could be mapped by the Window Manager internally to the data
  290. structures representing a window. It seems to me that in such a world, you
  291. could not be able to either a) append your custom data to the standard
  292. window definition, or b) retrieve it given a simple WindowRef.
  293.  
  294. I recommend using the refCon field.
  295.  
  296. - --------------------------------------------------------------------------
  297. Keith Rollin --- Phantom Programmer --- Apple Computer, Inc. --- Team Newton
  298.  
  299. +++++++++++++++++++++++++++
  300.  
  301. >From jonasw@lysator.liu.se (Jonas Wallden)
  302. Date: 31 Aug 1994 15:19:10 GMT
  303. Organization: (none)
  304.  
  305. rollin@newton.apple.com (Keith Rollin) writes:
  306. > I (Jonas) wrote:
  307. >>
  308. >>A great way to extend WindowRecords is to declare your own data type with
  309. >>a WindowRecord as the first item.
  310. >>
  311. >> [code example removed]
  312. >>
  313. >>The trick now is that you can typecast any window pointer to tMyWinPtr (and
  314. >>back) and access your window-specific data fields. You might want to place
  315. >>your application's unique creator code in the WindowRecord refCon field and
  316. >>check it first to be sure you have a window that belongs to your program.
  317. >>
  318. >>I use this all the time and it is useful in many other places where the
  319. >>system gives you a pointer to an object (VBL tasks, ParamBlocks, ...) and
  320. >>you need to store extra data. No need to use any globals for this stuff!
  321. >
  322. >You know, this is an often-used trick, but I've got a sneaking suspicion
  323. >that it might not be a good idea in the long run. The reason for this
  324. >feeling is because of something I read in "develop" a while back. In the
  325. >article that Dean Yu (I think) wrote on floating windows, there was
  326. >mention of converting the Windows.h interfaces over to using WindowRefs
  327. >instead of WindowPtrs.
  328.  
  329. Yes, now that you mention it I remember that article. Your point is very
  330. valid, and should be taken into consideration for code that one expects
  331. to use for a long time. However, like you said yourself, this trick is
  332. widely used and a lot of applications would break if things changed tomorrow.
  333.  
  334. > Indeed, users of ETO #15 will see that this change has already occured.
  335.  
  336. I haven't seen it in the Universal Interfaces included on CW4. Are the ones
  337. on ETO #15 different?
  338.  
  339. I agree that hiding the internal structure of things is a good thing as it
  340. will make it easier for Apple to change the system without breaking
  341. applications.
  342.  
  343. >I recommend using the refCon field.
  344.  
  345. Which leads us back to the original problem where the poster was afraid to
  346. treat this field as a pointer in case some other window appeared in his
  347. application's window list (CommsToolbox (did I spell it right? :-) windows
  348. were mentioned as an example).
  349.  
  350. One can of course first check the windowKind field, which doesn't have any
  351. accessor function...
  352.  
  353. >Keith Rollin --- Phantom Programmer --- Apple Computer, Inc. --- Team Newton
  354.  
  355. --
  356. `.`.   Jonas Wallden                    `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  357. `.`.`.   Internet: jonasw@lysator.liu.se  `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  358. `.`.`.`.   AppleLink: sw1369                `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  359.  
  360. +++++++++++++++++++++++++++
  361.  
  362. >From bb@lightside.com (Bob Bradley)
  363. Date: Tue, 30 Aug 1994 01:50:06 -0800
  364. Organization: SS Software Inc.
  365.  
  366. In article <34271e$i33@newsy.ifm.liu.se>, jonasw@lysator.liu.se (Jonas
  367. Wallden) wrote:
  368.  
  369. > One can of course first check the windowKind field, which doesn't have any
  370. > accessor function...
  371.  
  372. The only problem I've found with this is when using Dialogs which don't
  373. work properly with IsDialogEvent and DialogSelect if you change the
  374. windowKind field to something other than dialogKind. The only solution
  375. I've found in that case is to append data to the WindowRecord.
  376.  
  377. +++++++++++++++++++++++++++
  378.  
  379. >From mhl@icf.hrb.com (MARK H. LINTON)
  380. Date: 31 Aug 94 15:39:42 EST
  381. Organization: HRB Systems, Inc.
  382.  
  383. In article <34271e$i33@newsy.ifm.liu.se>, jonasw@lysator.liu.se (Jonas Wallden) writes:
  384. > rollin@newton.apple.com (Keith Rollin) writes:
  385. >> I (Jonas) wrote:
  386. >>>
  387. >>>A great way to extend WindowRecords is to declare your own data type with
  388. >>>a WindowRecord as the first item.
  389. >>>
  390. >>
  391. >>You know, this is an often-used trick, but I've got a sneaking suspicion
  392. >>that it might not be a good idea in the long run. The reason for this
  393. >>feeling is because of something I read in "develop" a while back. 
  394. > Yes, now that you mention it I remember that article. Your point is very
  395. > valid, and should be taken into consideration for code that one expects
  396. > to use for a long time. 
  397.    [snip]
  398. >>I recommend using the refCon field.
  399. > Which leads us back to the original problem where the poster was afraid to
  400. > treat this field as a pointer in case some other window appeared in his
  401. > application's window list (CommsToolbox (did I spell it right? :-) windows
  402. > were mentioned as an example).
  403. > One can of course first check the windowKind field, which doesn't have any
  404. > accessor function...
  405. >>Keith Rollin --- Phantom Programmer --- Apple Computer, Inc. --- Team Newton
  406.  
  407. When my applications create their own windows, they allocate a relocatable
  408. block (via NewHandle) to a structure describing the window. The structure of
  409. this information varies based on the particular application, but always
  410. includes, at minimum, as its first field an identifier.
  411.  
  412. Please consider the following pseudo-code, as I am not at my Macintosh at the
  413. moment.
  414.  
  415. typedef struct MinWinInfo {
  416.     OSType identifier;
  417. } MinWinInfoRecord, *MinWinInfoPtr, **MinWinInfoHandle;
  418.  
  419. Boolean OwnWindow(WindowPtr aWindow) {
  420.     Boolean ownWindow = false;
  421.     MinWinInfoHandle theInfoHandle;
  422.  
  423.     if (aWindow != nil) { /* can only own existent windows */
  424.         theInfoHandle = (MinWinInfoHandle)GetWRefCon(aWindow);
  425.         if (theInfoHandle != nil) { /* and we always add a refCon */
  426.             if ((**theInfoHandle).identifier == kThisAppSignature) {
  427.                 ownWindow = true; /* and the first four bytes match our sig */
  428.             }
  429.         }
  430.     }
  431.     return ownWindow;
  432. }
  433.  
  434. So whenever I need to see whether a window is mine I just call OwnWindow.
  435.  
  436. Does this help? Or did I miss the question entirely?
  437.  
  438. Mark
  439. - --------
  440. I don't know whether my employer has opinions.
  441.  
  442. +++++++++++++++++++++++++++
  443.  
  444. >From jonasw@lysator.liu.se (Jonas Wallden)
  445. Date: 31 Aug 1994 21:35:02 GMT
  446. Organization: (none)
  447.  
  448. mhl@icf.hrb.com (MARK H. LINTON) writes:
  449. >
  450. >When my applications create their own windows, they allocate a relocatable
  451. >block (via NewHandle) to a structure describing the window. The structure of
  452. >this information varies based on the particular application, but always
  453. >includes, at minimum, as its first field an identifier.
  454. >
  455. >Please consider the following pseudo-code, as I am not at my Macintosh at the
  456. >moment.
  457. >
  458. >typedef struct MinWinInfo {
  459. >    OSType identifier;
  460. >} MinWinInfoRecord, *MinWinInfoPtr, **MinWinInfoHandle;
  461. >
  462. >Boolean OwnWindow(WindowPtr aWindow) {
  463. >    Boolean ownWindow = false;
  464. >    MinWinInfoHandle theInfoHandle;
  465. >
  466. >    if (aWindow != nil) { /* can only own existent windows */
  467. >        theInfoHandle = (MinWinInfoHandle)GetWRefCon(aWindow);
  468. >        if (theInfoHandle != nil) { /* and we always add a refCon */
  469. >            if ((**theInfoHandle).identifier == kThisAppSignature) {
  470.  
  471. The problem is that we can't be 100% sure the RefCon field holds a pointer
  472. or handle for *all* windows as some windows not created by our application
  473. can appear in our WindowList. These external windows may use the RefCon
  474. field in any way (e.g. hold flags or whatever), making it impossible to
  475. dereference the value to check for the magic cookie.
  476.  
  477. >                ownWindow = true; /* and the first four bytes match our sig */
  478. >            }
  479. >        }
  480. >    }
  481. >    return ownWindow;
  482. >}
  483. >
  484. >So whenever I need to see whether a window is mine I just call OwnWindow.
  485. >
  486. >Does this help? Or did I miss the question entirely?
  487.  
  488. See above.
  489.  
  490. Hopefully the Apple guys come up with a nice improved Window Manager which
  491. supposedly is in the works. From what I've heard it will support floating
  492. windows directly (yes!), and that alone will make a lot of ugly code unneeded.
  493.  
  494. Anyone else mad at not getting modeless dialogs to work correctly together
  495. with floating windows? Yeah, I thought so...
  496. --
  497. `.`.   Jonas Wallden                    `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  498. `.`.`.   Internet: jonasw@lysator.liu.se  `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  499. `.`.`.`.   AppleLink: sw1369                `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  500.  
  501. +++++++++++++++++++++++++++
  502.  
  503. >From h+@nada.kth.se (Jon W{tte)
  504. Date: Thu, 01 Sep 1994 14:55:07 +0200
  505. Organization: Royal Institute of Something or other
  506.  
  507. In article <342t26$1ia@newsy.ifm.liu.se>,
  508. jonasw@lysator.liu.se (Jonas Wallden) wrote:
  509.  
  510. >The problem is that we can't be 100% sure the RefCon field holds a pointer
  511. >or handle for *all* windows as some windows not created by our application
  512. >can appear in our WindowList. These external windows may use the RefCon
  513.  
  514. All windows in our window list that are not our own have 
  515. negative windowKinds, or at least windowKinds < 8.
  516.  
  517. Cheers,
  518.  
  519.                     / h+
  520.  
  521.  
  522. --
  523.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  524.  
  525.   Reality exists only in your imagination.
  526.  
  527.  
  528. +++++++++++++++++++++++++++
  529.  
  530. >From mhl@icf.hrb.com (MARK H. LINTON)
  531. Date: 1 Sep 94 08:50:27 EST
  532. Organization: HRB Systems, Inc.
  533.  
  534. In article <342t26$1ia@newsy.ifm.liu.se>, jonasw@lysator.liu.se (Jonas Wallden) writes:
  535. > mhl@icf.hrb.com (MARK H. LINTON) writes:
  536. >>
  537. >>    if (aWindow != nil) { /* can only own existent windows */
  538. >>        theInfoHandle = (MinWinInfoHandle)GetWRefCon(aWindow);
  539. >>        if (theInfoHandle != nil) { /* and we always add a refCon */
  540. >>            if ((**theInfoHandle).identifier == kThisAppSignature) {
  541. > The problem is that we can't be 100% sure the RefCon field holds a pointer
  542. > or handle for *all* windows as some windows not created by our application
  543. > can appear in our WindowList. These external windows may use the RefCon
  544. > field in any way (e.g. hold flags or whatever), making it impossible to
  545. > dereference the value to check for the magic cookie.
  546.  
  547. Jonas,
  548.     Correct me if I'm wrong here. I did not say that the refCon WAS a handle.
  549. The cast on the GetWRefCon tells the compiler to ASSUME that the refCon is
  550. a handle. If it is flags or maybe a handle to another type of structure used by
  551. another type of window. HOWEVER, it is highly unlikely that the first four
  552. bytes of the memory arrived at by double de-referencing (**) the refCon will
  553. contain my applications signature, whether the assumption was true or not,
  554. UNLESS this is one of my windows.
  555.  
  556. BTW my applications require System 7 and at least a 68030 to run, so I do not
  557. care if in my (**) I come across an odd address ;^)
  558.  
  559. Mark
  560.  
  561. +++++++++++++++++++++++++++
  562.  
  563. >From dazuma@cco.caltech.edu (Daniel Azuma)
  564. Date: Thu, 01 Sep 1994 08:06:29 -0700
  565. Organization: California Institute of Technology
  566.  
  567. mhl@icf.hrb.com (MARK H. LINTON) wrote:
  568.  
  569. >     Correct me if I'm wrong here. I did not say that the refCon WAS a handle.
  570. > The cast on the GetWRefCon tells the compiler to ASSUME that the refCon is
  571. > a handle. If it is flags or maybe a handle to another type of structure used
  572. > by another type of window. HOWEVER, it is highly unlikely that the first four
  573. > bytes of the memory arrived at by double de-referencing (**) the refCon will
  574. > contain my applications signature, whether the assumption was true or not,
  575. > UNLESS this is one of my windows.
  576. > BTW my applications require System 7 and at least a 68030 to run, so I do not
  577. > care if in my (**) I come across an odd address ;^)
  578.  
  579. You still have to worry, even if you require an '020/'030. Trying to
  580. dereference addresses in a certain range-- I don't know the range, but the
  581. famous constant 0x50FFC001 is within it-- will cause a bus error.
  582.  
  583. What I've ended up doing is keeping my own data structure listing all the
  584. windows I "know about", including modeless dialogs. My array keeps the
  585. WindowPtr, a constant describing the kind of window, and some other fields
  586. containing various other info. Then, when I need to know something about a
  587. particular window (say, from FrontWindow()), I look the WindowPtr up in
  588. the table and snatch whatever info I need. If the WindowPtr isn't there, I
  589. know it's a window someone else rudely :) stuck into my window list. Not
  590. the most efficient way of doing things, I'm sure, but I think it's
  591. relatively un-breakable.
  592.  
  593. And, of course, later I can replace the WindowPtr field with a WindowRef
  594. and have it work the same way.
  595.  
  596. Dan
  597.  
  598. - ----------------------------------------------------------------
  599.   Daniel Azuma            | "Rejoice in the Lord always; again I
  600.   Caltech                 |  will say, Rejoice..."
  601.   dazuma@cco.caltech.edu  |              --Philippians 4:4
  602. - ----------------------------------------------------------------
  603.  
  604. +++++++++++++++++++++++++++
  605.  
  606. >From jonasw@lysator.liu.se (Jonas Wallden)
  607. Date: 1 Sep 1994 15:54:15 GMT
  608. Organization: (none)
  609.  
  610. mhl@icf.hrb.com (MARK H. LINTON) writes:
  611.  
  612. >In article <342t26$1ia@newsy.ifm.liu.se>, jonasw@lysator.liu.se (Jonas Wallden) writes:
  613. >> mhl@icf.hrb.com (MARK H. LINTON) writes:
  614. >>>
  615. >>>    if (aWindow != nil) { /* can only own existent windows */
  616. >>>        theInfoHandle = (MinWinInfoHandle)GetWRefCon(aWindow);
  617. >>>        if (theInfoHandle != nil) { /* and we always add a refCon */
  618. >>>            if ((**theInfoHandle).identifier == kThisAppSignature) {
  619. >> 
  620. >> The problem is that we can't be 100% sure the RefCon field holds a pointer
  621. >> or handle for *all* windows as some windows not created by our application
  622. >> can appear in our WindowList. These external windows may use the RefCon
  623. >> field in any way (e.g. hold flags or whatever), making it impossible to
  624. >> dereference the value to check for the magic cookie.
  625. >> 
  626. >
  627. >Jonas,
  628. >    Correct me if I'm wrong here. I did not say that the refCon WAS a handle.
  629. >The cast on the GetWRefCon tells the compiler to ASSUME that the refCon is
  630. >a handle. If it is flags or maybe a handle to another type of structure used
  631. >by another type of window. HOWEVER, it is highly unlikely that the first four
  632. >bytes of the memory arrived at by double de-referencing (**) the refCon will
  633. >contain my applications signature, whether the assumption was true or not,
  634. >UNLESS this is one of my windows.
  635. >
  636. >BTW my applications require System 7 and at least a 68030 to run, so I do not
  637. >care if in my (**) I come across an odd address ;^)
  638.  
  639. But you can get address errors on these machines as well! How do you think
  640. EvenBetterBusError works?
  641.  
  642. And like I, Jon and others have said earlier, one can check the windowKind
  643. field first to avoid these cases. But that is just as bad as appending data to
  644. the WindowRecord as long as there isn't any high-level (i.e. future-compatible)
  645. way to do this.
  646.  
  647. --
  648. `.`.   Jonas Wallden                    `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  649. `.`.`.   Internet: jonasw@lysator.liu.se  `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  650. `.`.`.`.   AppleLink: sw1369                `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.
  651.  
  652. +++++++++++++++++++++++++++
  653.  
  654. >From ivanski@world.std.com (Ivan M CaveroBelaunde)
  655. Date: Thu, 1 Sep 1994 16:15:59 GMT
  656. Organization: The World Public Access UNIX, Brookline, MA
  657.  
  658. jonasw@lysator.liu.se (Jonas Wallden) writes:
  659. >>Boolean OwnWindow(WindowPtr aWindow) {
  660. >>    Boolean ownWindow = false;
  661. >>    MinWinInfoHandle theInfoHandle;
  662. >>
  663. >>    if (aWindow != nil) { /* can only own existent windows */
  664. >>        theInfoHandle = (MinWinInfoHandle)GetWRefCon(aWindow);
  665. >>        if (theInfoHandle != nil) { /* and we always add a refCon */
  666. >>            if ((**theInfoHandle).identifier == kThisAppSignature) {
  667. >The problem is that we can't be 100% sure the RefCon field holds a pointer
  668. >or handle for *all* windows as some windows not created by our application
  669. >can appear in our WindowList. These external windows may use the RefCon
  670. >field in any way (e.g. hold flags or whatever), making it impossible to
  671. >dereference the value to check for the magic cookie.
  672.  
  673. So use a "ValidHandle" routine to determine that the refcon is a handle
  674. before messing with it:
  675.     - Check that it's even.
  676.     - Check that it's below BufPtr.
  677.     - Do both checks again for the "assumed" master pointer.
  678.     - Call HandleZone.
  679.  
  680. in that order. Then you know you have a handle you can safely dereference.
  681.  
  682. -Ivan
  683. - -
  684. Ivan Cavero Belaunde (ivanski@world.std.com)
  685. Avid VideoShop Project Lead
  686. Avid Technology, Inc.
  687.  
  688. +++++++++++++++++++++++++++
  689.  
  690. >From mhl@icf.hrb.com (MARK H. LINTON)
  691. Date: 1 Sep 94 13:27:35 EST
  692. Organization: HRB Systems, Inc.
  693.  
  694. From: jonasw@lysator.liu.se (Jonas Wallden)
  695. >>In article <342t26$1ia@newsy.ifm.liu.se>, jonasw@lysator.liu.se (Jonas Wallden) writes:
  696. >>> mhl@icf.hrb.com (MARK H. LINTON) writes:
  697. >>>>
  698. >>>>    if (aWindow != nil) { /* can only own existent windows */
  699. >>>>        theInfoHandle = (MinWinInfoHandle)GetWRefCon(aWindow);
  700. >>>>        if (theInfoHandle != nil) { /* and we always add a refCon */
  701. >>>>            if ((**theInfoHandle).identifier == kThisAppSignature) {
  702. >>> 
  703. >>> The problem is that we can't be 100% sure the RefCon field holds a pointer
  704. >>> or handle for *all* windows as some windows not created by our application
  705. >>> can appear in our WindowList. [snip]
  706. >>
  707. >>Jonas,
  708. >>    Correct me if I'm wrong here. I did not say that the refCon WAS a handle.
  709. >>The cast on the GetWRefCon tells the compiler to ASSUME that the refCon is
  710. >>a handle. [snip]
  711. >>
  712. >>BTW my applications require System 7 and at least a 68030 to run, so I do not
  713. >>care if in my (**) I come across an odd address ;^)
  714. >
  715. >But you can get address errors on these machines as well! How do you think
  716. >EvenBetterBusError works?
  717. >
  718.  
  719. Gosh, I guess I was wrong :) and, yes, I have EvenBetterBusError installed, but
  720. I seem to recall the release notes saying something about needing to allow
  721. certain Toolbox routines to do things that would normally trigger EBBE. Perhaps
  722. this is the sort of thing that required that. (?)
  723.  
  724. >
  725. >And like I, Jon and others have said earlier, one can check the windowKind
  726. >field first to avoid these cases. But that is just as bad as appending data to
  727. >the WindowRecord as long as there isn't any high-level (i.e. future-compatible)
  728. >way to do this.
  729. >
  730.  
  731. Yes, I agree. I really do not like the windowKind check.
  732.  
  733. From: ivanski@world.std.com (Ivan M CaveroBelaunde)
  734. >
  735. >So use a "ValidHandle" routine to determine that the refcon is a handle
  736. >before messing with it:
  737. >    - Check that it's even.
  738. >    - Check that it's below BufPtr.
  739. >    - Do both checks again for the "assumed" master pointer.
  740. >    - Call HandleZone.
  741. >
  742. >in that order. Then you know you have a handle you can safely dereference.
  743. >
  744.  
  745. Hey! Way Cool! Where I originally said  "if (theInfoHandle != nil) {", I really
  746. should have said "if (ValidHandle((Handle)theInfoHandle)) {".
  747.  
  748. Got any CODE? ;^)
  749.  
  750. From: dazuma@cco.caltech.edu (Daniel Azuma)
  751. >
  752. >You still have to worry, even if you require an '020/'030. Trying to
  753. >dereference addresses in a certain range-- I don't know the range, but the
  754. >famous constant 0x50FFC001 is within it-- will cause a bus error.
  755. >
  756.  
  757. Yes. I keep getting told this :^) and pardon my ignorance but what is that
  758. famous constant?
  759.  
  760. >
  761. >What I've ended up doing is keeping my own data structure listing all the
  762. >windows I "know about", including modeless dialogs. My array keeps the
  763. >WindowPtr, a constant describing the kind of window, and some other fields
  764. >containing various other info. Then, when I need to know something about a
  765. >particular window (say, from FrontWindow()), I look the WindowPtr up in
  766. >the table and snatch whatever info I need. If the WindowPtr isn't there, I
  767. >know it's a window someone else rudely :) stuck into my window list. Not
  768. >the most efficient way of doing things, I'm sure, but I think it's
  769. >relatively un-breakable.
  770. >
  771. >And, of course, later I can replace the WindowPtr field with a WindowRef
  772. >and have it work the same way.
  773. >
  774.  
  775. Until today I would have gaged at the extra baggage here. But I have been
  776. following this other thread (Subject: Selecting Window via menus) on which was
  777. recently posted a reasonable solution (From: Matt Slot 
  778. <fprefect@engin.umich.edu>) that required a similar structure. Now that I see
  779. the two side by side, I might try to roll them together and come up with a
  780. reasonable "Window Manager". Hey, now wasn't that Jonas' original point? :)
  781.  
  782. Mark
  783.  
  784.  
  785. +++++++++++++++++++++++++++
  786.  
  787. >From dazuma@cco.caltech.edu (Daniel Azuma)
  788. Date: Thu, 01 Sep 1994 11:37:34 -0700
  789. Organization: California Institute of Technology
  790.  
  791. mhl@icf.hrb.com (MARK H. LINTON) wrote:
  792.  
  793. > From: ivanski@world.std.com (Ivan M CaveroBelaunde)
  794. > >
  795. > >So use a "ValidHandle" routine to determine that the refcon is a handle
  796. > >before messing with it:
  797. > >       - Check that it's even.
  798. > >       - Check that it's below BufPtr.
  799. > >       - Do both checks again for the "assumed" master pointer.
  800. > >       - Call HandleZone.
  801. > >
  802. > >in that order. Then you know you have a handle you can safely dereference.
  803.  
  804. That's pretty cool, yeah! My question is, how would it work when running
  805. PPC native? I'm kinda clueless about PowerMac memory management...
  806.  
  807. > >You still have to worry, even if you require an '020/'030. Trying to
  808. > >dereference addresses in a certain range-- I don't know the range, but the
  809. > >famous constant 0x50FFC001 is within it-- will cause a bus error.
  810. > Yes. I keep getting told this :^) and pardon my ignorance but what is that
  811. > famous constant?
  812.  
  813. It's the long that EBBE stuffs into nil. Supposedly, it's designed to
  814. cause a bus or address error on any mac with any memory configuration. I
  815. don't know exactly what's so special about this constant as opposed to,
  816. say, 0x60FFC001, though. :)
  817.  
  818. Dan
  819.  
  820. - ----------------------------------------------------------------
  821.   Daniel Azuma            | "Rejoice in the Lord always; again I
  822.   Caltech                 |  will say, Rejoice..."
  823.   dazuma@cco.caltech.edu  |              --Philippians 4:4
  824. - ----------------------------------------------------------------
  825.  
  826. +++++++++++++++++++++++++++
  827.  
  828. >From peter.lewis@info.curtin.edu.au (Peter N Lewis)
  829. Date: Fri, 02 Sep 1994 11:37:10 +0800
  830. Organization: NCRPDA, Curtin University
  831.  
  832. In article <1994Sep1.085027.21786@hrbicf>, mhl@icf.hrb.com (MARK H.
  833. LINTON) wrote:
  834.  
  835. >BTW my applications require System 7 and at least a 68030 to run, so I do not
  836. >care if in my (**) I come across an odd address ;^)
  837.  
  838. Yeah, but what if it is an address that isn't valid, or isn't mapped, or
  839. whatever.  It'll still go bang.  You need to use some variant of
  840. ValidHandle, checking that the ptr is even, and inside your heap, and that
  841. the ptr points to a ptr that is even and in your heap are definitely good
  842. ideas if you are going to use this scheme.
  843.    Peter.
  844. -- 
  845. Peter N Lewis <peter.lewis@info.curtin.edu.au> - Macintosh TCP fingerpainter
  846.  
  847. +++++++++++++++++++++++++++
  848.  
  849. >From h+@nada.kth.se (Jon W{tte)
  850. Date: Fri, 02 Sep 1994 09:18:41 +0200
  851. Organization: Royal Institute of Something or other
  852.  
  853. In article <344tf7$4d2@newsy.ifm.liu.se>,
  854. jonasw@lysator.liu.se (Jonas Wallden) wrote:
  855.  
  856. >And like I, Jon and others have said earlier, one can check the windowKind
  857. >field first to avoid these cases. But that is just as bad as appending data to
  858. >the WindowRecord as long as there isn't any high-level (i.e. future-compatible)
  859. >way to do this.
  860.  
  861. I do a #define GetWindowKind(w) ((WindowPeek)w)->windowKind
  862.  
  863. Then when the real call comes around... The interesting thing 
  864. is that Apple promises that if you follow the current API, and 
  865. READ but not WRITE where there are no accessor functions, there 
  866. will be a compatiblity mode. However, to take advantage of the 
  867. new features, you need a partial re-design and total recompile.
  868.  
  869. Cheers,
  870.  
  871.                     / h+
  872.  
  873.  
  874. --
  875.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  876.  
  877.   Reality exists only in your imagination.
  878.  
  879.  
  880. +++++++++++++++++++++++++++
  881.  
  882. >From siegel@netcom.com (Rich Siegel)
  883. Date: Fri, 2 Sep 1994 18:02:45 GMT
  884. Organization: Bare Bones Software
  885.  
  886. In article <dazuma-0109941137340001@m22108.esl.com> dazuma@cco.caltech.edu (Daniel Azuma) writes:
  887. >> From: ivanski@world.std.com (Ivan M CaveroBelaunde)
  888. >> >
  889. >> >So use a "ValidHandle" routine to determine that the refcon is a handle
  890. >> >before messing with it:
  891. >> >       - Check that it's even.
  892. >> >       - Check that it's below BufPtr.
  893. >> >       - Do both checks again for the "assumed" master pointer.
  894. >> >       - Call HandleZone.
  895. >> >
  896. >> >in that order. Then you know you have a handle you can safely dereference.
  897. >
  898. >That's pretty cool, yeah! My question is, how would it work when running
  899. >PPC native? I'm kinda clueless about PowerMac memory management...
  900.  
  901. It works just the same. The second word in "Power Macintosh" is
  902. "Macintosh", and that's just what a Power Macintosh is, from the
  903. application programmer's point of view.
  904.  
  905. Incidentally, you probably only want to use Ivan's handle check in
  906. debugging code, not in shipping code: HandleZone() doesn't come for
  907. free.
  908.  
  909. R.
  910. -- 
  911. Rich Siegel % siegel@netcom.com    % President & CEO, Bare Bones Software Inc.
  912. --> For information about BBEdit, finger bbedit@world.std.com <--
  913.  
  914. +++++++++++++++++++++++++++
  915.  
  916. >From h+@nada.kth.se (Jon W{tte)
  917. Date: Sun, 04 Sep 1994 13:17:08 +0200
  918. Organization: Royal Institute of Something or other
  919.  
  920. In article <dazuma-0109941137340001@m22108.esl.com>,
  921. dazuma@cco.caltech.edu (Daniel Azuma) wrote:
  922.  
  923. >It's the long that EBBE stuffs into nil. Supposedly, it's designed to
  924. >cause a bus or address error on any mac with any memory configuration. I
  925. >don't know exactly what's so special about this constant as opposed to,
  926. >say, 0x60FFC001, though. :)
  927.  
  928. 50ff is also an illegal instruction, so if you JUMP to 0L, 
  929. you'll get an immediate break.
  930.  
  931. Cheers,
  932.  
  933.                         / h+
  934.  
  935.  
  936. --
  937.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  938.  Engineering: "How will this work?" Science: "Why will this work?" Management:
  939.  "When will this work?"  Liberal Arts: "Do you want fries with that?"
  940.                      -- Jesse N. Schell
  941.  
  942.  
  943. +++++++++++++++++++++++++++
  944.  
  945. >From Ron_Hunsinger@bmug.org (Ron Hunsinger)
  946. Date: Wed,  7 Sep 94 03:23:37 PST
  947. Organization: Berkeley Macintosh Users Group
  948.  
  949. siegel@netcom.com writes:
  950.  
  951. >Incidentally, you probably only want to use Ivan's handle check in
  952. >debugging code, not in shipping code: HandleZone() doesn't come for
  953. >free.
  954.  
  955. And if you were a ship-builder, I suppose your ships would only be 
  956. equipped with life boats while you tested them in the harbor, but you 
  957. would remove all that extra baggage before sending them out to sea?  
  958.  
  959. -Ron Hunsinger
  960.  
  961. +++++++++++++++++++++++++++
  962.  
  963. >From kluev@jonathan.srcc.msu.su (Kluev)
  964. Date: Wed, 7 Sep 94 20:22:41 +0400
  965. Organization: (none)
  966.  
  967. In article <9668AA8B9BCC.DC7EB6@klkmac014.nada.kth.se>
  968. h+@nada.kth.se (Jon W{tte) wrote:
  969.  
  970. In article <342t26$1ia@newsy.ifm.liu.se>,
  971. jonasw@lysator.liu.se (Jonas Wallden) wrote:
  972. >
  973. > >The problem is that we can't be 100% sure the RefCon field holds a
  974. pointer
  975. > >or handle for *all* windows as some windows not created by our
  976. application
  977. > >can appear in our WindowList. These external windows may use the
  978. RefCon
  979. >
  980. > All windows in our window list that are not our own have 
  981. > negative windowKinds, or at least windowKinds < 8.
  982.  
  983. The problem doesn't go away: how to distinguish system dialog and
  984. my dialog? (windowKind = dialogKind = 2 in this case). The only
  985. compatible solution is the one suggested by someone else: keep your
  986. own list of windows in addition to standard one
  987. (FrontWindow()-> nextWindow-> nextWindow-> ...).
  988.  
  989. Michael Kluev.
  990.  
  991. +++++++++++++++++++++++++++
  992.  
  993. >From mxmora@unix.sri.com (Matt Mora)
  994. Date: 8 Sep 1994 09:09:29 -0700
  995. Organization: SRI International, Menlo Park, CA
  996.  
  997. In article <523026979413@jonathan.srcc.msu.su> kluev@jonathan.srcc.msu.su (Kluev) writes:
  998.  
  999. >compatible solution is the one suggested by someone else: keep your
  1000. >own list of windows in addition to standard one
  1001. >(FrontWindow()-> nextWindow-> nextWindow-> ...).
  1002.  
  1003.  
  1004. I have missed most of the thread but if its about seeing if the window
  1005. is yours or not I usally add a field called magicSig and stuff that with
  1006. The app signature or something. So you can tell a window is yours by
  1007. doing the windowPeek->magicSig == mySig trick. 
  1008.  
  1009. Xavier
  1010.  
  1011.  
  1012. -- 
  1013. ___________________________________________________________
  1014. Matthew Xavier Mora                       Matt_Mora@sri.com
  1015. SRI International                       mxmora@unix.sri.com
  1016. 333 Ravenswood Ave                    Menlo Park, CA. 94025
  1017.  
  1018. +++++++++++++++++++++++++++
  1019.  
  1020. >From gbolsinga@aol.com (GBolsinga)
  1021. Date: 8 Sep 1994 16:29:04 -0400
  1022. Organization: America Online, Inc. (1-800-827-6364)
  1023.  
  1024. I haven't been able to follow the whole thread, but when can your app get
  1025. windows that don't belong to it? I certain that I read in NIM: Mac Toolbox
  1026. Essentials that your app can't get windows from other apps.  I can't 
  1027. remember if it was in the Event Mgr or Window Mgr Chapter.  I know that
  1028. there are some errors in NIM.  Could someone please let me know how a
  1029. window from another app could be seen by my app?
  1030.  
  1031. You see, I am trying to decide how I will keep my extra data with the 
  1032. window, since I'm starting on a new project, and I wasn't too happy with
  1033. the way I have been doing it.
  1034.  
  1035. Thanks.
  1036.  
  1037. Greg Bolsinga
  1038. MPI Multimedia
  1039. /* these are my opinions */
  1040.  
  1041.  
  1042. +++++++++++++++++++++++++++
  1043.  
  1044. >From h+@nada.kth.se (Jon W{tte)
  1045. Date: Fri, 09 Sep 1994 10:07:15 +0200
  1046. Organization: Royal Institute of Something or other
  1047.  
  1048. In article <0019C298.fc@bmug.org>,
  1049. Ron_Hunsinger@bmug.org (Ron Hunsinger) wrote:
  1050.  
  1051. >>Incidentally, you probably only want to use Ivan's handle check in
  1052. >>debugging code, not in shipping code: HandleZone() doesn't come for
  1053. >>free.
  1054.  
  1055. >And if you were a ship-builder, I suppose your ships would only be 
  1056. >equipped with life boats while you tested them in the harbor, but you 
  1057. >would remove all that extra baggage before sending them out to sea?  
  1058.  
  1059. This is interesting!
  1060.  
  1061. If you were a ship builder, would you equip the release version 
  1062. of your ship with helocopters, VTOL jets, lifeboats AND an 
  1063. inflatable cruiser, each capable of holding twice the capacity 
  1064. of the original ship?
  1065.  
  1066. Debugging code is there to help you catch bugs automatically. 
  1067. By the time you ship, you're supposed to have removed all the 
  1068. bugs (right :-) so users might be somewhat unenthusiastic about 
  1069. waiting two minutes for an "Open File" dialog box to show up.
  1070.  
  1071. That aside, I usually ship with the debug version of the oops 
  1072. libraries, meaning method calls for unknown methods or illegal 
  1073. objects are usually flagged as command failures (using the old 
  1074. TCL)
  1075.  
  1076. HandleZone, however, or RecoverHandle, are so expensive that 
  1077. you shouldn't use them in production code unless totally 
  1078. necessary.
  1079.  
  1080. Cheers,
  1081.  
  1082.                 / h+
  1083.  
  1084.  
  1085. --
  1086.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  1087.    This is the kind of totally-gross-out-sick stuff you can do with C++ that
  1088.    makes the language kind of neat.
  1089.                                             -- Keith Rollin
  1090.  
  1091.  
  1092. +++++++++++++++++++++++++++
  1093.  
  1094. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  1095. Date: Sat, 10 Sep 1994 00:02:57 GMT
  1096. Organization: Apple Computer
  1097.  
  1098. Kluev, kluev@jonathan.srcc.msu.su writes:
  1099. > The problem doesn't go away: how to distinguish system dialog and
  1100. > my dialog? (windowKind = dialogKind = 2 in this case). The only
  1101. > compatible solution is the one suggested by someone else: keep your
  1102. > own list of windows in addition to standard one
  1103. > (FrontWindow()-> nextWindow-> nextWindow-> ...).
  1104.  
  1105. Or just don't use dialogs at all. I've found that the effort needed to
  1106. replace the dialog manager isn't much more than the effort needed to write a
  1107. bunch of good dialog utilities to make the dialog manager easily useable...
  1108.  
  1109. --Jens Alfke                           jens_alfke@powertalk.apple.com
  1110.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  1111.  
  1112. +++++++++++++++++++++++++++
  1113.  
  1114. >From peter.lewis@info.curtin.edu.au (Peter N Lewis)
  1115. Date: Sun, 11 Sep 1994 16:30:33 +0800
  1116. Organization: NCRPDA, Curtin University
  1117.  
  1118. >Or just don't use dialogs at all. I've found that the effort needed to
  1119. >replace the dialog manager isn't much more than the effort needed to write a
  1120. >bunch of good dialog utilities to make the dialog manager easily useable...
  1121.  
  1122. Yep, very true.  I've gone the other way (using only DLOGs), and if I had
  1123. it to do over again, I'd swap.
  1124.    Peter.
  1125. -- 
  1126. Peter N Lewis <peter.lewis@info.curtin.edu.au> - Macintosh TCP fingerpainter
  1127. FTP my programs from redback.cs.uwa.edu.au:Others/PeterLewis/ or
  1128. amug.org:pub/peterlewis/ or nic.switch.ch:software/mac/peterlewis/
  1129.  
  1130. +++++++++++++++++++++++++++
  1131.  
  1132. >From kluev@jonathan.srcc.msu.su (Kluev)
  1133. Date: Sun, 11 Sep 94 20:36:53 +0400
  1134. Organization: (none)
  1135.  
  1136. In article <34ncvp$4ji@unix.sri.com>
  1137. mxmora@unix.sri.com (Matt Mora) wrote:
  1138.  
  1139. > In article <523026979413@jonathan.srcc.msu.su>
  1140. > kluev@jonathan.srcc.msu.su > (Kluev) writes:
  1141. > >compatible solution is the one suggested by someone else: keep your
  1142. > >own list of windows in addition to standard one
  1143. > >(FrontWindow()-> nextWindow-> nextWindow-> ...).
  1144. > I have missed most of the thread but if its about seeing if the
  1145. window
  1146. > is yours or not I usally add a field called magicSig and stuff that
  1147. with
  1148. > The app signature or something. So you can tell a window is yours by
  1149. > doing the windowPeek->magicSig == mySig trick. 
  1150.  
  1151. This works of course under current Mac ToolBox/OS. This will work in
  1152. near future also. But this couldn't be treated as a good long-term
  1153. solution:
  1154.  
  1155. 1. Nobody guarantees that system windows will not have magicSig after
  1156.    their DialogRecord/WindowRecord.
  1157. 2. Future OS may have intelligent memory protection, so you will not
  1158.    be able to write or read from locations beyond memory blocks.
  1159. 3. Future Toolbox may switch from WindowRecords to WindowRefcons, so
  1160.    you wonït be able to concatenate there your data. (You may emulate
  1161.    this future feature right now: pass NIL as a first parameter to
  1162.    NewDialog/NewWindow.)
  1163.  
  1164. Again, all this (except 1) is about mystical "future OS".
  1165.  
  1166. Michael Kluev.
  1167.  
  1168.  
  1169. +++++++++++++++++++++++++++
  1170.  
  1171. >From ivan_cavero_belaunde@avid.com (Ivan Cavero Belaunde)
  1172. Date: 12 Sep 1994 11:28:41 GMT
  1173. Organization: Avid Technology, Inc.
  1174.  
  1175. In article <9668AA95E453.201F4@klkmac004.nada.kth.se>, h+@nada.kth.se (Jon
  1176. W{tte) wrote:
  1177. > In article <0019C298.fc@bmug.org>,
  1178. > Ron_Hunsinger@bmug.org (Ron Hunsinger) wrote:
  1179. > >>Incidentally, you probably only want to use Ivan's handle check in
  1180. > >>debugging code, not in shipping code: HandleZone() doesn't come for
  1181. > >>free.
  1182. > >And if you were a ship-builder, I suppose your ships would only be 
  1183. > >equipped with life boats while you tested them in the harbor, but you 
  1184. > >would remove all that extra baggage before sending them out to sea?  
  1185.  
  1186. That's a bit harsh; Rich's remark is on target - I believe HandleZone
  1187. involves walking through a zone's master pointer list. It's pretty costly.
  1188.  
  1189. > If you were a ship builder, would you equip the release version 
  1190. > of your ship with helocopters, VTOL jets, lifeboats AND an 
  1191. > inflatable cruiser, each capable of holding twice the capacity 
  1192. > of the original ship?
  1193. > ...
  1194. > HandleZone, however, or RecoverHandle, are so expensive that 
  1195. > you shouldn't use them in production code unless totally 
  1196. > necessary.
  1197.  
  1198. Actually, I avoid hard and fast rules with the ValidHandle routine.
  1199. Depending on how the likelihood (which is related to how you got the
  1200. "handle") that you got a fake handle, the necessity of it being a handle
  1201. (are you going to pass it to the toolbox as one?), how often the code
  1202. would be called (if it's called once in a blue moon ValidHandle ain't that
  1203. expensive) and the time-consumingness (ack, bad word) of the rest of the
  1204. operation. In other words, it's a judgment call. That being said, Rich and
  1205. Jon are dead on, Valid Handle is way expensive. I keep a ValidHandle and a
  1206. ValidHandleSafe that I choose among - ValidHandle has the HandleZone
  1207. routine #ifdef DEBUG'd out.
  1208.  
  1209. -Ivan
  1210. - --
  1211. Ivan Cavero Belaunde (ivan_cavero_belaunde@avid.com)
  1212. Avid VideoShop Lead
  1213. Avid Technology, Inc.
  1214. Disclaimer:  All views expressed are entirely my own and do not
  1215. reflect  the opinions of Avid Technology, Inc.
  1216.  
  1217. +++++++++++++++++++++++++++
  1218.  
  1219. >From besbris@jeeves.ucsd.edu (David Besbris)
  1220. Date: 15 Sep 1994 17:40:51 GMT
  1221. Organization: University of California at San Diego
  1222.  
  1223. I usually do append stuff to the windowptr, but if you want to be REALLY
  1224. anal...
  1225.     You can keep your own linked list of your window like:
  1226.  
  1227.           Type
  1228.               NodePtr = ^ NodeRec;
  1229.                      NodeRec =
  1230.             record of
  1231.                 AWindow : WindowPtr;
  1232.                 MyData    : Handle;
  1233.                 Link    : NodePtr;
  1234.             end;
  1235.             
  1236. And then when you want to know if a window is yours just search the list
  1237. to get your data. The overhead of this is really quite small, and it can
  1238. insulate you from all of the worries of using the refcons or appending
  1239. data directly to a structure that you pass to the system.
  1240.  
  1241.  
  1242. My 2 cents,
  1243.  
  1244. Dave
  1245.  
  1246. besbris@jeeves.ucsd.edu
  1247.  
  1248.  
  1249. ---------------------------
  1250.  
  1251. >From westwig@msc.cornell.edu (Erik Anton Westwig)
  1252. Subject: Dialogs and (de)activate events
  1253. Date: Wed, 14 Sep 1994 11:54:07 -0500
  1254. Organization: Cornell University
  1255.  
  1256. Here's a HIG type question for 'ya
  1257.  
  1258. The frontmost window has some active text in it.
  1259. The user then does something to bring up a dialog.
  1260.  
  1261. When should I deactivate the text? 
  1262.  
  1263. I looked at ThinkC 5 and it wasn't even consistent with itself:
  1264. 1. if you bring up the About ThinkC box with text selected in the editor,
  1265. it
  1266.    WILL NOT deselect the text.
  1267. 2. But if you choose New in the File Menu, it WILL deselect it.
  1268.  
  1269. I then looked at TeachText which I figured would follow whatever Apple
  1270. wanted
  1271. programmers to do, and it didn't deselect the text when a dialog was
  1272. brought
  1273. up.
  1274.  
  1275. This seems backwards to me, since in other parts of IM vol I, it tells you
  1276. explicitly to deselect text when a window is not in the front.  So which is
  1277. it (and why)?
  1278.  
  1279. Also since you aren't going to receive a deactivate event in your app when
  1280. you 
  1281. use a Modal dialog, you will need to call the whatever deactivation routin
  1282. within your dialog routine (right?).  Is this different for a modless box?
  1283.  
  1284. Thanks for the advice,
  1285. ERIK
  1286. -- 
  1287. "IT's over to you..."
  1288.  
  1289. +++++++++++++++++++++++++++
  1290.  
  1291. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  1292. Date: Wed, 14 Sep 1994 21:29:25 GMT
  1293. Organization: Apple Computer
  1294.  
  1295. Erik Anton Westwig, westwig@msc.cornell.edu writes:
  1296. > The frontmost window has some active text in it.
  1297. > The user then does something to bring up a dialog.
  1298. > When should I deactivate the text? 
  1299.  
  1300. Always. You should disable the active window when a dialog appears and
  1301. re-enable it when it goes away. It takes a little bit of extra effort to do
  1302. this, and apps are pretty inconsistent about doing it.
  1303.  
  1304. Note that if the dialog applies to the current selection, you may want to
  1305. display a "dimmed" selection when the window is inactive, so the user can
  1306. still tell what area is selected.
  1307.  
  1308. > Also since you aren't going to receive a deactivate event in your app when
  1309. > you 
  1310. > use a Modal dialog, you will need to call the whatever deactivation routin
  1311. > within your dialog routine (right?).  Is this different for a modless box?
  1312.  
  1313. You do actually get a deactivate event, but the modal dialog ignores it by
  1314. default because it doesn't know diddly about your document windows. To get
  1315. the event yourself, use a modal dialog filter and watch for activate events.
  1316. When you get one for a document window, do the right thing. This also applies
  1317. to update events; that way your document windows will still update while
  1318. there is a dialog up (let's say a screen saver kicked in...)
  1319.  
  1320. --Jens Alfke                           jens_alfke@powertalk.apple.com
  1321.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  1322.  
  1323. +++++++++++++++++++++++++++
  1324.  
  1325. >From bb@lightside.com (Bob Bradley)
  1326. Date: Tue, 13 Sep 1994 05:23:23 -0800
  1327. Organization: SS Software Inc.
  1328.  
  1329. In article <westwig-140994115407@cu-dialup-0039.cit.cornell.edu>,
  1330. westwig@msc.cornell.edu (Erik Anton Westwig) wrote:
  1331.  
  1332. > Here's a HIG type question for 'ya
  1333. > The frontmost window has some active text in it.
  1334. > The user then does something to bring up a dialog.
  1335. > When should I deactivate the text? 
  1336.  
  1337. I always thought it was stupid that calling StandardGetFile wouldn't
  1338. generate an activate event for the window it's coming in front of and even
  1339. worse, it's inconsistant, since the window itself (the part the window
  1340. manager handles for you) is deactivated (ie. the drag region is changed to
  1341. inactivate state) but, a deactivate event isn't generated.
  1342.  
  1343. What I do is isolate all my activate/deactivate code into a single
  1344. HandleActivate routine that will normally be called when I receive an
  1345. activate event. Then if I'm going to put up a dialog (like StandardFile)
  1346. that doesn't generate an activate event, I'll manually call HandleActivate
  1347. for that frontmost window (since it's the only one that would be active).
  1348.  
  1349. For your own dialogs, calling ShowWindow before calling ModalDialog should
  1350. generate the deactivate event for the previous frontmost window.
  1351.  
  1352. ---------------------------
  1353.  
  1354. >From mmah@alias.com (Ming Mah)
  1355. Subject: Lets talk OpenDoc
  1356. Date: Thu, 18 Aug 1994 14:28:06 GMT
  1357. Organization: Alias Research Inc., Toronto ON Canada
  1358.  
  1359. Hi gang,
  1360.  
  1361. I have not seen a discussion thread about OpenDoc, and I wanted to
  1362. start one up with some initial impressions that I had.
  1363.  
  1364. I saw the discussion about OLE being bundled in the August issue
  1365. of MacTech, and I went to pick it up.  I also read about being able
  1366. to get a copy of the OpenDoc alpha CD by sending some mail to
  1367. OPENDOC@applelink.apple.com, and so I did that as well (and I have
  1368. to say I am really impressed with Apple in that regards.  I sent
  1369. out my request on Friday, and by Tuesday I had received the OpenDoc
  1370. CD ... with all the discussion about getting the CD (I know, it
  1371. branched off into a general tirade about Apple's SDK policies) I
  1372. have to say this was VERY impressive).
  1373.  
  1374. Any ways, on to what I wanted to say.  I first installed the OLE
  1375. stuff, and tried to play around with the sample applications that
  1376. were included, and I have to admit that I was really confused about
  1377. just what Microsoft was trying to show, and how to go about doing
  1378. anything useful at all.  After exploring the CD a bit, I came across
  1379. an 'OLE vs. OpenDoc' discussion, and things were pretty much downhill
  1380. from there.  The document has tons of (I think) uncalled for jabs at
  1381. OpenDoc, and a lot of defensiveness about design differences between
  1382. the two technologies.
  1383.  
  1384. The impression I had with OLE is that it is an enabling technology
  1385. to allow for document centric inter-application communications.
  1386. I could not get a very nice feel for "in-place" editting as the few
  1387. things I tried (an Excel spreadsheet, and embedding a QuickTime movie)
  1388. both ended up launching seperate applications (Excel and a QuickTime
  1389. movie player).  In order to even play the movie, I had to switch over
  1390. to another application to get it started, although once started it
  1391. did play within my document.
  1392.  
  1393. OpenDoc though seems to be a tremendous leap forward with the Macintosh
  1394. "user experience" (I have come to REALLY like that phrase).  OpenDoc
  1395. is layered on top of Drag-and-drop and shared libraries (although
  1396. apparently the shared library stuff will go away).  The OpenDoc
  1397. application itself is only 20K !!
  1398.  
  1399. Viewing and editing "parts" is very intuitive (well almost, I did
  1400. have to dig a little bit to find out about pressing command to
  1401. move a part around, as opposed to activating it).  And the interaction
  1402. with the Finder was really nice.
  1403.  
  1404. All part editing happened within the document, and it was kind of neat
  1405. to see the menus switching as I went from part to part.  A QuickTime
  1406. movie is embedded by opening a QuickTime part editor (which does not
  1407. seem "right" to me), but the movie itself was embedded directly in
  1408. my document, and playing the movie is done by activating the badge.
  1409.  
  1410. Back to the 'OLE vs. OpenDoc' discussion on the OLE CD.  OLE seems to
  1411. me to be just a protocol for inter-application communications (I know
  1412. "just" is a rather harsh and over-simple word), whereas OpenDoc
  1413. encompasses a lot more than that.  OpenDoc is tightly integrated within
  1414. the Macintosh experience (again, it was just "right" to drag a piece
  1415. of text to the trash, and have it removed from my document), and is
  1416. a well thought out extension to it.
  1417.  
  1418. OpenDoc also includes some really neat file support tools, especially
  1419. the draft version-ability.  I thought that it again just shows a lot
  1420. of thought and attention to what users want to do with a document.
  1421.  
  1422. Well, these were just my first impressions, and if you have not already,
  1423. I would urge you to take a look at both technologies (especially since
  1424. they can be gotten for almost free (OpenDoc IS free)).  I am starting
  1425. to feel realy warm and fuzzy with OpenDoc, and I would be interested
  1426. in continued discussions about OpenDoc part development.
  1427.  
  1428. Have fun.
  1429. Ming
  1430.  
  1431. +++++++++++++++++++++++++++
  1432.  
  1433. >From hanrek@cts.com (Mark Hanrek)
  1434. Date: 18 Aug 1994 22:15:21 GMT
  1435. Organization: The Information Workshop
  1436.  
  1437.  
  1438. Ming,
  1439.  
  1440. I had the exact same identical experience, and assessment, as you did.
  1441.  
  1442. Microsoft may have put the stuff in our hands NOW, and for FREE, but I
  1443. could not make heads or tails of where to start to dive in.  There was no
  1444. read-me that was the big arrow pointing to "Start Here".   A fatal
  1445. mistake.
  1446.  
  1447. Also, the "OpenDoc vs. OLE: Information for Customers" thing was filled
  1448. with unprofessional "jabs" as you rightly called them, and this makes it
  1449. obvious that a certain entity feels a little insecure, and will resort to
  1450. mud-slinging, since there must be little to point to which can stand on
  1451. its own.
  1452.  
  1453. Hmmmmm.
  1454.  
  1455. Mark Hanrek
  1456. The Information Workshop
  1457.  
  1458. +++++++++++++++++++++++++++
  1459.  
  1460. >From rob@eats.com (Rob Newberry)
  1461. Date: Thu, 18 Aug 1994 18:34:34 UNDEFINED
  1462. Organization: Education and Technology Solutions
  1463.  
  1464. >Microsoft may have put the stuff in our hands NOW, and for FREE, but I
  1465. >could not make heads or tails of where to start to dive in.  There was no
  1466. >read-me that was the big arrow pointing to "Start Here".   A fatal
  1467. >mistake.
  1468.  
  1469. My goodness.  You get a free bunch of code, and you want someone to step you 
  1470. through the whole thing too?  Come on!
  1471.  
  1472. If you want to learn about the OLE stuff on the CD, take a look at the 
  1473. Microsoft Press book, "Inside OLE 2".  It is primarily Windows-oriented, but 
  1474. the OLE code is (FTMP) well explained and portable.
  1475.  
  1476. >Also, the "OpenDoc vs. OLE: Information for Customers" thing was filled
  1477. >with unprofessional "jabs" as you rightly called them, and this makes it
  1478. >obvious that a certain entity feels a little insecure, and will resort to
  1479. >mud-slinging, since there must be little to point to which can stand on
  1480. >its own.
  1481.  
  1482. Didn't read it.  I'm not surprised, though...
  1483.  
  1484. Rob
  1485.  
  1486.  
  1487.  
  1488. +++++++++++++++++++++++++++
  1489.  
  1490. >From nick+@pitt.edu ( nick.c )
  1491. Date: Thu, 18 Aug 94 23:19:42 GMT
  1492. Organization: The Pitt, Chemistry
  1493.  
  1494. In Article <hanrek-1808941517260001@auke.cts.com>, hanrek@cts.com (Mark
  1495. Hanrek) wrote:
  1496.  
  1497. >Microsoft may have put the stuff in our hands NOW, and for FREE, but I
  1498. >could not make heads or tails of where to start to dive in.  There was no
  1499.  
  1500.  
  1501.     For what it's worth, Apple will put OpenDoc in your hands now
  1502.       and free too.  After the initial flurry regarding the MacTech
  1503.       distribution of OLE, I responded to Tre's suggestion that anyone
  1504.       who was interested could get the equivalent OpenDoc SDK.  
  1505.       Just got the package today, and it's in Alpha release -
  1506.       and I sure haven't figured out enough to comment on the
  1507.       superiority of one or the other.  But the take home lesson
  1508.       is the resources exist to start working on either standard
  1509.       today, and at no cost.  Figure I'll be doing a little reading
  1510.       tonight :-).
  1511.  
  1512.                                             -- nick
  1513.  
  1514.   Disclaimer: Just my opinion.
  1515.                                     _/   _/  _/  _/_/_/   _/   _/  
  1516.      Interet: nick@pitt.edu        _/_/ _/  _/  _/   _/  _/_/_/    
  1517.       eWorld: nick                _/ _/_/  _/  _/       _/ _/      
  1518.          CIS: 71232,766          _/   _/  _/   _/_/_/  _/   _/     
  1519.     
  1520.            "Science is nothing but perception" - Plato
  1521.  
  1522. +++++++++++++++++++++++++++
  1523.  
  1524. >From 103t_english@west.cscwc.pima.edu
  1525. Date: 18 Aug 94 23:22:13 MST
  1526. Organization: (none)
  1527.  
  1528. In article <hanrek-1808941517260001@auke.cts.com>, hanrek@cts.com (Mark Hanrek) writes:
  1529. > Ming,
  1530. > I had the exact same identical experience, and assessment, as you did.
  1531. > Microsoft may have put the stuff in our hands NOW, and for FREE, but I
  1532. > could not make heads or tails of where to start to dive in.  There was no
  1533. > read-me that was the big arrow pointing to "Start Here".   A fatal
  1534. > mistake.
  1535. > Also, the "OpenDoc vs. OLE: Information for Customers" thing was filled
  1536. > with unprofessional "jabs" as you rightly called them, and this makes it
  1537. > obvious that a certain entity feels a little insecure, and will resort to
  1538. > mud-slinging, since there must be little to point to which can stand on
  1539. > its own.
  1540. > Hmmmmm.
  1541.  
  1542. What I found fasckinatin was the review/comparison given in MacTech Journal.
  1543.  
  1544. I noted a certain assumption that everyone must use C++ and that all vendors
  1545. must use the same object format and that the overall feel of OLE vs OpenDOc was
  1546. a tie as far as H-I concerns were concerned, etc.
  1547.  
  1548. Even though I'm not competent to refute any of his observations,  I felt that
  1549. the tone of the article was "Microsoft paid me to write this and so I'm putting
  1550. it in the best possible light."
  1551.  
  1552.  
  1553. Anyone else get this feeling?
  1554.  
  1555.  
  1556. Lawson
  1557.  
  1558. +++++++++++++++++++++++++++
  1559.  
  1560. >From Ken Prehoda <kenp@nmrfam.wisc.edu>
  1561. Date: 19 Aug 1994 16:57:26 GMT
  1562. Organization: Univ of Wisc-Madison
  1563.  
  1564. In article <1994Aug18.232213@west.cscwc.pima.edu> ,
  1565. 103t_english@west.cscwc.pima.edu writes:
  1566. >Even though I'm not competent to refute any of his observations,  I felt
  1567. that
  1568. >the tone of the article was "Microsoft paid me to write this and so I'm
  1569. putting
  1570. >it in the best possible light."
  1571. >
  1572. >
  1573. >Anyone else get this feeling?
  1574.  
  1575. I got the same feeling.  I was definitely surprised at the authors
  1576. SOM-bashing.  I am not that familiar with SOM but have heard good things.
  1577. The author of the MacTech article made it sound as if SOM was completely
  1578. unacceptable.
  1579.  
  1580. Are there any unbiased opinions on SOM vs. COM?
  1581.  
  1582. -Ken Prehoda
  1583. kenp@nmrfam.wisc.edu
  1584.  
  1585. +++++++++++++++++++++++++++
  1586.  
  1587. >From h+@nada.kth.se (Jon W{tte)
  1588. Date: Fri, 19 Aug 1994 22:27:21 +0200
  1589. Organization: Royal Institute of Something or other
  1590.  
  1591. In article <1994Aug18.232213@west.cscwc.pima.edu>,
  1592. 103t_english@west.cscwc.pima.edu wrote:
  1593.  
  1594. >I noted a certain assumption that everyone must use C++ and that all vendors
  1595. >must use the same object format
  1596.  
  1597. Uh, not under OpenDoc you don't have to. OpenDoc will layer on 
  1598. top of SOM, which is language neutral and even provides network 
  1599. transparency in DSOM.
  1600.  
  1601. However, the current _ALPHA_ release uses the ASLM which 
  1602. demands either MPW C++ _or_ SC++ for MPW for the entire build.
  1603.  
  1604. >and that the overall feel of OLE vs OpenDOc was
  1605. >a tie as far as H-I concerns were concerned, etc.
  1606.  
  1607. Simply not true, as anyone who has tried to create and edit a 
  1608. composite document in OLE 2 versus OpenDoc will tell you.
  1609.  
  1610. Cheers,
  1611.  
  1612.  
  1613.                 / h+
  1614.  
  1615.  
  1616. --
  1617.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  1618.  
  1619. "TextEdit does everything right."
  1620.     ã Jon W{tte
  1621.  
  1622.  
  1623. +++++++++++++++++++++++++++
  1624.  
  1625. >From h+@nada.kth.se (Jon W{tte)
  1626. Date: Fri, 19 Aug 1994 22:27:23 +0200
  1627. Organization: Royal Institute of Something or other
  1628.  
  1629. In article <rob.308.005C70F3@eats.com>,
  1630. rob@eats.com (Rob Newberry) wrote:
  1631.  
  1632. >My goodness.  You get a free bunch of code, and you want someone to step you 
  1633. >through the whole thing too?  Come on!
  1634.  
  1635. You DO get that on the OpenDoc CD. It has lots of useful 
  1636. recepies for various things, and also comes with PartMaker, 
  1637. which generates a part shell for you which you can extend.
  1638.  
  1639. Cheers,
  1640.  
  1641.                 / h+
  1642.  
  1643.  
  1644. --
  1645.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  1646.  
  1647. "TextEdit does everything right."
  1648.     ã Jon W{tte
  1649.  
  1650.  
  1651. +++++++++++++++++++++++++++
  1652.  
  1653. >From mmah@alias.com (Ming Mah)
  1654. Date: Fri, 19 Aug 1994 21:08:23 GMT
  1655. Organization: Alias Research, Inc., Toronto ON Canada
  1656.  
  1657. In <1994Aug18.232213@west.cscwc.pima.edu> 103t_english@west.cscwc.pima.edu writes:
  1658.  
  1659. >What I found fasckinatin was the review/comparison given in MacTech Journal.
  1660.  
  1661. >I noted a certain assumption that everyone must use C++ and that all vendors
  1662. >must use the same object format and that the overall feel of OLE vs OpenDOc was
  1663. >a tie as far as H-I concerns were concerned, etc.
  1664.  
  1665. >Even though I'm not competent to refute any of his observations,  I felt that
  1666. >the tone of the article was "Microsoft paid me to write this and so I'm putting
  1667. >it in the best possible light."
  1668.  
  1669.  
  1670. >Anyone else get this feeling?
  1671.  
  1672.  
  1673. >Lawson
  1674.  
  1675.  
  1676. Hi Lawson,
  1677.  
  1678. Yes, that was the same feeling I had.  In terms of H-I, OpenDoc is
  1679. really easy to use, and feels very natural (although A LOT of this
  1680. has to do with drag-and-drop).  Editing in place feels really nice
  1681. with OpenDoc, and although it may have been just that OLE was not
  1682. set up with workable demos, launching Excel to edit a spreadsheet
  1683. somehow just does not feel the same.
  1684.  
  1685. A major "argument" that I saw in the MacTech review was the
  1686. underlying support architecture, and the way OpenDoc's SOM was
  1687. described sounded really intimidating to me.  Now currently
  1688. the OpenDoc Alpha uses Shared Libraries (which I do not know
  1689. how to create either), and PartMaker creates all the necessary
  1690. configuration files (including make files and such) so I would
  1691. suspect that when OpenDoc goes SOM that the same thing would
  1692. happen.  I am sure that if someone HAD to get down and dirty
  1693. that SOM-ness (or whatever) could be scary, but so far (and
  1694. I have a very simple part running after only playing around
  1695. for two days) I have NOT run into any difficulties at all,
  1696. let alone any of the nature that were speculated upon in
  1697. the review article.
  1698.  
  1699. The review does feel really very much as if it was written
  1700. by Microsoft, and not by someone who has used OpenDoc much
  1701. (if at all !!).  I still really feel that the document
  1702. structure file support (for things like drafts and mostly
  1703. transparent access to drag-and-drop and links) is a cool
  1704. feature of OpenDoc way beyond a simple IAC interface.
  1705.  
  1706. Have fun.
  1707. Ming
  1708.  
  1709. +++++++++++++++++++++++++++
  1710.  
  1711. >From nagle@netcom.com (John Nagle)
  1712. Date: Sat, 20 Aug 1994 04:44:10 GMT
  1713. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  1714.  
  1715. 103t_english@west.cscwc.pima.edu writes:
  1716. >What I found fasckinatin was the review/comparison given in MacTech Journal.
  1717. >I noted a certain assumption that everyone must use C++ and that all vendors
  1718. >must use the same object format and that the overall feel of OLE vs OpenDOc was
  1719. >a tie as far as H-I concerns were concerned, etc.
  1720.  
  1721. >Even though I'm not competent to refute any of his observations,  I felt that
  1722. >the tone of the article was "Microsoft paid me to write this and so I'm putting
  1723. >it in the best possible light."
  1724. >Anyone else get this feeling?
  1725.  
  1726.      I didn't get that feeling.  The Microsoft position is much stronger,
  1727. and can be found in "White Papers:Point CounterPoint" on the OLE CD-ROM.
  1728.  
  1729.      OLE is definitely C++ oriented; it knows about C++ vtables.  
  1730. OpenDoc bought into IBM's System Object Model, which is language-neutral,
  1731. sort of.  The languages have to know about SOM, or at least it works 
  1732. better if they do. 
  1733.  
  1734.      A more fundamental problem is that all this machinery exists mostly
  1735. so you can embed different documents in your word processor and still
  1736. edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  1737. The Next Generation".  Yes, you can do other stuff, but the touted
  1738. advantage is mostly for integrated documents.  It's all focused on 
  1739. what documents look like, not what they mean.  Is that really worth all 
  1740. this complexity?  
  1741.  
  1742.                     John Nagle
  1743.  
  1744. +++++++++++++++++++++++++++
  1745.  
  1746. >From 103t_english@west.cscwc.pima.edu
  1747. Date: 20 Aug 94 00:50:01 MST
  1748. Organization: (none)
  1749.  
  1750. In article <nagleCutH5M.1w1@netcom.com>, nagle@netcom.com (John Nagle) writes:
  1751. > 103t_english@west.cscwc.pima.edu writes:
  1752. >>What I found fasckinatin was the review/comparison given in MacTech Journal.
  1753. >>I noted a certain assumption that everyone must use C++ and that all vendors
  1754. >>must use the same object format and that the overall feel of OLE vs OpenDOc was
  1755. >>a tie as far as H-I concerns were concerned, etc.
  1756. >>Even though I'm not competent to refute any of his observations,  I felt that
  1757. >>the tone of the article was "Microsoft paid me to write this and so I'm putting
  1758. >>it in the best possible light."
  1759. >>Anyone else get this feeling?
  1760. >      I didn't get that feeling.  The Microsoft position is much stronger,
  1761. > and can be found in "White Papers:Point CounterPoint" on the OLE CD-ROM.
  1762. >      OLE is definitely C++ oriented; it knows about C++ vtables.  
  1763. > OpenDoc bought into IBM's System Object Model, which is language-neutral,
  1764. > sort of.  The languages have to know about SOM, or at least it works 
  1765. > better if they do. 
  1766. >      A more fundamental problem is that all this machinery exists mostly
  1767. > so you can embed different documents in your word processor and still
  1768. > edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  1769. > The Next Generation".  Yes, you can do other stuff, but the touted
  1770. > advantage is mostly for integrated documents.  It's all focused on 
  1771. > what documents look like, not what they mean.  Is that really worth all 
  1772. > this complexity?  
  1773. >                     John Nagle
  1774.  
  1775.  
  1776. So, is the complexity for the programmer or for the user, and just who is more
  1777. important?
  1778.  
  1779.  
  1780. Lawson
  1781.  
  1782. +++++++++++++++++++++++++++
  1783.  
  1784. >From philip@cs.uct.ac.za (Philip Machanick)
  1785. Date: 20 Aug 1994 14:40:56 +0200
  1786. Organization: Computer Science Department, University of Cape Town
  1787.  
  1788. Ming Mah (mmah@alias.com) wrote:
  1789. : I saw the discussion about OLE being bundled in the August issue
  1790. : of MacTech, and I went to pick it up.  I also read about being able
  1791. : to get a copy of the OpenDoc alpha CD by sending some mail to
  1792. : OPENDOC@applelink.apple.com, and so I did that as well (and I have
  1793. : to say I am really impressed with Apple in that regards.  I sent
  1794. : out my request on Friday, and by Tuesday I had received the OpenDoc
  1795.  
  1796. Took a little longer in my case, but I am on a different continent and
  1797. they sent it DHL at their expense. I haven't seen the OLE CD yet - if
  1798. anyone wants to get rid of theirs, let me know (I don't mind if you can't
  1799. afford DHL :). If so please send mail to philipm@is.co.za - my regular
  1800. mail server is broken.
  1801.  
  1802. : CD ... with all the discussion about getting the CD (I know, it
  1803. : branched off into a general tirade about Apple's SDK policies) I
  1804. : have to say this was VERY impressive).
  1805. [...]
  1806. : Back to the 'OLE vs. OpenDoc' discussion on the OLE CD.  OLE seems to
  1807. : me to be just a protocol for inter-application communications (I know
  1808. : "just" is a rather harsh and over-simple word), whereas OpenDoc
  1809. : encompasses a lot more than that.  OpenDoc is tightly integrated within
  1810. : the Macintosh experience (again, it was just "right" to drag a piece
  1811. : of text to the trash, and have it removed from my document), and is
  1812. : a well thought out extension to it.
  1813.  
  1814. I wonder what there is in it for Microsoft to wholeheartedly embrace
  1815. the concept of lots of small plug and play editors. Microsoft relies
  1816. on selling big bloated apps for income.
  1817.  
  1818. Apple has always been a paradigm-shift company - even if they
  1819. sometimes forget this - whereas Microsoft is a kludge-shift
  1820. company. Apple has an inherent need to push new ways of doing things
  1821. as a selling point for a minority platform. Microsoft has to please
  1822. conservative managers by pretending they aren't changing the way
  1823. things are done, just covering corporate asses by filling out the
  1824. feature list as fully as possible. This leads to gigantic monolithic
  1825. apps. It's hard to see how MS Word, Excel etc. fit into a
  1826. document centric world.
  1827.  
  1828. That's partly why I would like to check out the OLE CD. Is it
  1829. really document centric - or is it just a way of embedding
  1830. pieces of other apps' documents in one app's documents?
  1831. --
  1832. Philip Machanick                      philip@cs.wits.ac.za
  1833. Computer Science Department, University of he Witwatesrand
  1834. 2050 Wits, South Africa 27(11)716-3309 fax 339-7965
  1835. (at University of Cape Town until November: 27(21)650-4058)
  1836.  
  1837. +++++++++++++++++++++++++++
  1838.  
  1839. >From sandvik@apple.com (Kent Sandvik)
  1840. Date: Sat, 20 Aug 1994 19:16:32 GMT
  1841. Organization: Dr. Stupid Meets Frankenstein
  1842.  
  1843. In article <334tko$jjq@cs.uct.ac.za>
  1844. philip@cs.uct.ac.za (Philip Machanick) writes:
  1845.  
  1846. > Apple has always been a paradigm-shift company - even if they
  1847. > sometimes forget this - whereas Microsoft is a kludge-shift
  1848. > company. Apple has an inherent need to push new ways of doing things
  1849. > as a selling point for a minority platform. Microsoft has to please
  1850. > conservative managers by pretending they aren't changing the way
  1851. > things are done, just covering corporate asses by filling out the
  1852. > feature list as fully as possible. This leads to gigantic monolithic
  1853. > apps. It's hard to see how MS Word, Excel etc. fit into a
  1854. > document centric world.
  1855. > That's partly why I would like to check out the OLE CD. Is it
  1856. > really document centric - or is it just a way of embedding
  1857. > pieces of other apps' documents in one app's documents?
  1858.  
  1859. You are on the right track, a lot of the OLE versus OpenDoc has to do
  1860. with techno-political, strategic games. Microsoft would not like to
  1861. loose the lucrative market of selling base applications to office
  1862. environments. Imagine a future where anyone could buy cheaper
  1863. components and put together their favourite environment. The content is
  1864. the content, and the tools are the tools.
  1865.  
  1866. There will of course be a nice market for companies that bundle part
  1867. handlers so the end result is indeed a classical application. However
  1868. Microsoft would no longer have full control of their base line
  1869. application offerings, and that's something they don't want to loose.
  1870. Thus their technical drive behind OLE is more to make sure that
  1871. applications offer OLE support, and of course their applications are
  1872. the prime OLE engines. 
  1873.  
  1874. Think about this next time you read technical blurbs from Microsoft
  1875. about OLE. Anyway, private comments. I would rather see a world where
  1876. all kinds of companies are allowed to compete on the application arena,
  1877. instead of having one single big company dictate the rules.
  1878.  
  1879. Cheers, Kent
  1880.  
  1881. Kent Sandvik, Apple Computer Inc. sandvik@apple.com
  1882. --Private activities on the net --
  1883.  
  1884. +++++++++++++++++++++++++++
  1885.  
  1886. >From michael@elwing.otago.ac.nz (Michael(tm) Hamel)
  1887. Date: Sat, 20 Aug 1994 21:06:17 GMT
  1888. Organization: University of Otago
  1889.  
  1890. 103t_english@west.cscwc.pima.edu wrote:
  1891.  
  1892. > I noted a certain assumption that everyone must use C++ and that all vendors
  1893. > must use the same object format and that the overall feel of OLE vs OpenDOc was
  1894. > a tie as far as H-I concerns were concerned, etc.
  1895.  
  1896. What really gets me about OpenDoc is that its another factor thats going to
  1897. push my company off the Macintosh.
  1898.  
  1899. We have a substantial code base written in Object Pascal. Apple are saying to
  1900. us, "Hey, rewrite everything in C++ in this entirely different way and thats
  1901. the future". The trouble is, thats exactly the effort required to put us on
  1902. Windows. Now, I believe, and I'm sure you'll agree, that moving to OpenDoc
  1903. would be a much "nicer" thing to do and would produce a better user experience,
  1904. etc. But it requires us to trust the Apple who brought us MacApp and BedRock
  1905. with an awfully similar-looking exercise. And we just can't afford to do that.
  1906. Maybe in twelve or eighteen months it will be clearer that we can, but we may
  1907. have to commit ourselves before then. To Windows.
  1908.  
  1909. --
  1910. Michael(tm) Hamel                           ADInstruments, Dunedin, New Zealand
  1911. michael@otago.ac.nz
  1912.  
  1913. "The Galaxy's a fun place. You'll need to have this fish in your ear."
  1914.  
  1915. +++++++++++++++++++++++++++
  1916.  
  1917. >From 103t_english@west.cscwc.pima.edu
  1918. Date: 20 Aug 94 16:51:02 MST
  1919. Organization: (none)
  1920.  
  1921. In article <CuuqMI.BMJ@news.otago.ac.nz>, michael@elwing.otago.ac.nz (Michael(tm) Hamel) writes:
  1922. > 103t_english@west.cscwc.pima.edu wrote:
  1923. >> I noted a certain assumption that everyone must use C++ and that all vendors
  1924. >> must use the same object format and that the overall feel of OLE vs OpenDOc was
  1925. >> a tie as far as H-I concerns were concerned, etc.
  1926. > What really gets me about OpenDoc is that its another factor thats going to
  1927. > push my company off the Macintosh.
  1928. > We have a substantial code base written in Object Pascal. Apple are saying to
  1929. > us, "Hey, rewrite everything in C++ in this entirely different way and thats
  1930. > the future". The trouble is, thats exactly the effort required to put us on
  1931. > Windows. Now, I believe, and I'm sure you'll agree, that moving to OpenDoc
  1932. > would be a much "nicer" thing to do and would produce a better user experience,
  1933. > etc. But it requires us to trust the Apple who brought us MacApp and BedRock
  1934. > with an awfully similar-looking exercise. And we just can't afford to do that.
  1935. > Maybe in twelve or eighteen months it will be clearer that we can, but we may
  1936. > have to commit ourselves before then. To Windows.
  1937.  
  1938. WHile I don't know that OpenDoc will work with Object Pascal, the fact that it
  1939. is touted as more language-independent than OLE suggest that it should...
  1940.  
  1941. Any OpenDoc gurus/designers lurking?
  1942.  
  1943.  
  1944. Lawson
  1945.  
  1946. +++++++++++++++++++++++++++
  1947.  
  1948. >From hanrek@cts.com (Mark Hanrek)
  1949. Date: 21 Aug 1994 01:08:05 GMT
  1950. Organization: The Information Workshop
  1951.  
  1952. >>
  1953. >> Mark Hanrek said...
  1954. >>
  1955. >> Microsoft may have put the stuff in our hands NOW, and for FREE, but I
  1956. >> could not make heads or tails of where to start to dive in.  There was no
  1957. >> read-me that was the big arrow pointing to "Start Here".   A fatal
  1958. >> mistake.
  1959. In article <rob.308.005C70F3@eats.com>, rob@eats.com (Rob Newberry) wrote:
  1960. >
  1961. > My goodness.  You get a free bunch of code, and you want someone to step you 
  1962. > through the whole thing too?  Come on!
  1963.  
  1964. Rob,
  1965.  
  1966. Boy, you must not work in a business-oriented environment do you? 
  1967.  
  1968. This isn't a "guessing game" we're playing here.  This is business.  Time
  1969. is money.  We take the "path of least resistance" and work on a
  1970. need-to-know basis.  
  1971.  
  1972. And a question business-oriented programmer find themselves asking is...
  1973.  
  1974.    Do you want us to use the technology or not?
  1975.  
  1976.  
  1977. This is why I take advantage of every opportunity to put forth the
  1978. recommendation that Apple, and any other company that wants programmers to
  1979. use their technology and APIs, to take the well-known world of
  1980. "user-interface" and "ease of use" and extend it to programmers, because
  1981. programmers are humans too.
  1982.  
  1983. - ---
  1984.  
  1985. In a separate thread, we noted MacTech's success and praised them, and it
  1986. was mentioned that "if a company cares about the customer, then everything
  1987. else falls into place nicely".
  1988.  
  1989. Likewise, if "programmer-interface" is recognized, and the principles of
  1990. "programmer ease-of-use" are implemented, then everything falls into place
  1991. nicely.  It is a simple way to catch a myriad of things that slow
  1992. programmers down which can easily be eliminated.
  1993.  
  1994. This isn't about making things all nice and pretty and neat for sissy
  1995. programmers.
  1996.  
  1997. It has to do with making it so we can go in, do what we need to do, and
  1998. get the hell out of there because we have to move on to 25 other issues
  1999. and we don't have time to screw around being confused, being predisposed
  2000. to making mistakes that have already been made, encountering bugs that
  2001. have already been found, and asking the same questions over and over and
  2002. over.
  2003.  
  2004. - ---
  2005.  
  2006. If someone at Microsoft had been paying attention to what was going on,
  2007. they wouldn't have forgotten to "guide" the programmer interested in OLE,
  2008. telling them to "start here, play with that, then get into this, then
  2009. graduate to this other thing if you wish, and before you start, here is
  2010. some perspective as to how all these things fit together".
  2011.  
  2012. If someone there truly "cared" about the OLE CD being truly effective,
  2013. they would have discovered this oversight.
  2014.  
  2015. This kind of implies something... that this is what happens when you have
  2016. a bunch of people trained to do only what they are told, and to not ask
  2017. questions, or bother having any "ideas".  :)
  2018.  
  2019. I am glad I am aligned with Macintosh, and OpenDoc.
  2020.  
  2021.  
  2022. Mark Hanrek
  2023. The Information Workshop
  2024.  
  2025. +++++++++++++++++++++++++++
  2026.  
  2027. >From neil_ticktin@xplain.com (Neil Ticktin)
  2028. Date: Sun, 21 Aug 1994 03:42:37 GMT
  2029. Organization: MacTech Magazine/Xplain Corporation
  2030.  
  2031. In article <1994Aug18.232213@west.cscwc.pima.edu>,
  2032. 103t_english@west.cscwc.pima.edu wrote:
  2033.  
  2034. >> Even though I'm not competent to refute any of his observations,  I felt that
  2035. >> the tone of the article was "Microsoft paid me to write this and so I'm
  2036. >> putting it in the best possible light."
  2037. >> 
  2038. >> Anyone else get this feeling?
  2039.  
  2040. Lawson,
  2041.  
  2042. Rest assured that at the time of writing the article, Jeff Alger was
  2043. independent from both Apple and Microsoft.  In fact, we checked with both
  2044. companies to see if Jeff was a "fair" choice before embarking on the
  2045. article.  Both gave their "ok".
  2046.  
  2047. Jeff wrote an article that a lot of people agree with and a lot of people
  2048. disagree with.  The important thing is that Jeff worked with both sets of
  2049. software just as any developer would and then wrote up his opinions. 
  2050. Jeff, as you know, liked OLE better.  Why?  Because he found it easier to
  2051. work with and did not like SOM.
  2052.  
  2053. Realize that Jeff's opinion on SOM is just that, an opinion.  I personally
  2054. don't agree with it from what I've heard, but I feel strongly that people
  2055. are entitled to their opinion.  Jeff's also spent more time working with
  2056. the stuff than a lot of people have.
  2057.  
  2058. Also realize that Jeff was working with whatever was available at the
  2059. time.  Documentation and tools for OpenDoc and OLE have been moving very
  2060. quickly.  The articles were written back in the June timeframe and things
  2061. are much different already.  Jeff based his comments on what he saw at
  2062. that moment in time, not promises for the future.
  2063.  
  2064. One last thing.  Even though Jeff favored OLE, he took a bunch of jabs at
  2065. it.  Microsoft had enough respect for Jeff's comments that they've now
  2066. offered him a job.  They seem to be truly interested in making their
  2067. product better.  This all came to pass AFTER the article was published,
  2068. let alone written.
  2069.  
  2070. In the end, I believe that OpenDoc will win because the technology, I
  2071. think, is cool and is better integrated.  But, Microsoft is putting up one
  2072. hell of a fight in the mean time.
  2073.  
  2074. Our goal at MacTech was to put the technology and concepts in your hands. 
  2075. As a developer, the choice is up to you.  Hope it was of help.
  2076.  
  2077. Thanks,
  2078.  
  2079. Neil Ticktin
  2080. MacTech Magazine
  2081.  
  2082. - ---------------------------------------------------------------------
  2083.            Neil Ticktin, MacTech Magazine (formerly MacTutor)
  2084. PO Box 250055, Los Angeles, CA 90025 * 310-575-4343 * Fax: 310-575-0925
  2085.  For more info, anonymous ftp to ftp.netcom.com and cd to /pub/xplain
  2086.   custservice@xplain.com * editorial@xplain.com * adsales@xplain.com
  2087. marketing@xplain.com * accounting@xplain.com * pressreleases@xplain.com
  2088.    progchallenge@xplain.com * publisher@xplain.com * info@xplain.com
  2089.  
  2090. +++++++++++++++++++++++++++
  2091.  
  2092. >From quinn@cs.uwa.edu.au (Quinn "The Eskimo!")
  2093. Date: Sun, 21 Aug 1994 15:06:39 +0800
  2094. Organization: Department of Computer Science, The University of Western Australia
  2095.  
  2096. In article <CuuqMI.BMJ@news.otago.ac.nz>, michael@elwing.otago.ac.nz
  2097. (Michael(tm) Hamel) wrote:
  2098.  
  2099. >We have a substantial code base written in Object Pascal. Apple are saying to
  2100. >us, "Hey, rewrite everything in C++ in this entirely different way and thats
  2101. >the future".
  2102.  
  2103. I disagree with this.  SOM puts you in a much better position to support
  2104. Pascal than any of the other technologies Apple is using (specifically
  2105. ASLM).  At least with SOM there's a hope of you being able to compile the
  2106. IDL into Pascal.  Everywhere else on the Mac the interfaces are written in
  2107. C and then given to someone who doesn't know Pascal (and doesn't care
  2108. IMHO) to port.  With SOM you should be able to do the job yourself (and
  2109. hence get it done well).
  2110.  
  2111. btw This is all speculation from what I've read in OS/2 Developer
  2112. magazine.  I haven't actually got the OpenDoc CD.
  2113. -- 
  2114. Quinn "The Eskimo!"      <quinn@cs.uwa.edu.au>     "Support HAVOC!"
  2115. Department of Computer Science, The University of Western Australia
  2116.   Who's sick and tired of Apple Pascal interfaces that won't even
  2117.   run through the bloody compiler!  Negligence IMHO.
  2118.  
  2119. +++++++++++++++++++++++++++
  2120.  
  2121. >From philip@cs.uct.ac.za (Philip Machanick)
  2122. Date: 21 Aug 1994 11:07:22 +0200
  2123. Organization: Computer Science Department, University of Cape Town
  2124.  
  2125. John Nagle (nagle@netcom.com) wrote:
  2126.  
  2127. :      A more fundamental problem is that all this machinery exists mostly
  2128. : so you can embed different documents in your word processor and still
  2129. : edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  2130. : The Next Generation".  Yes, you can do other stuff, but the touted
  2131. : advantage is mostly for integrated documents.  It's all focused on 
  2132. : what documents look like, not what they mean.  Is that really worth all 
  2133. : this complexity?  
  2134.  
  2135. I think you miss the point. You can move away from a world of monolithic
  2136. apps like word processors to generic apps in which you use your
  2137. favourite editors. This is paradigm shift, not change of detail.
  2138.  
  2139. Whether it will work or not is hard to say at this stage because of
  2140. the potential for problems with managing a highly customizable world.
  2141.  
  2142. Consider an example that is not word processing, like software development.
  2143.  
  2144. Your major outer level document looks like a Think/CW project. It
  2145. contains embedded documents that are source code, object code,
  2146. resources etc. Each of these embedded objects has editors - which
  2147. you can replace by other editors that have the right semantics,
  2148. but maybe a different look and feel. Object code's editor would
  2149. be a compiler with behaviours like bring up to date. The overall
  2150. project document would also have an editor that would bring the
  2151. whole project up to date.
  2152.  
  2153. Take this a step further and embed this in a version control
  2154. system - one more layer of document.
  2155.  
  2156. Embed this in a documentation system and you've reinvented
  2157. Knuth's Web.
  2158.  
  2159. If this is done right, vast potential is opened up for
  2160. restructuring the way you work around a document-centric
  2161. view of the world.
  2162.  
  2163. The biggest problem is that everyone is going to want to
  2164. do it - and not everyone will have the necessary design
  2165. skills.
  2166.  
  2167. This is a brave new world that Apple is creating for us and 
  2168. it will revolutionise the way we work as much as the original
  2169. Mac did.
  2170. --
  2171. Philip Machanick                      philip@cs.wits.ac.za
  2172. Computer Science Department, University of he Witwatesrand
  2173. 2050 Wits, South Africa 27(11)716-3309 fax 339-7965
  2174. (at University of Cape Town until November: 27(21)650-4058)
  2175.  
  2176. +++++++++++++++++++++++++++
  2177.  
  2178. >From h+@nada.kth.se (Jon W{tte)
  2179. Date: Sun, 21 Aug 1994 13:28:08 +0200
  2180. Organization: Royal Institute of Something or other
  2181.  
  2182. In article <CuuqMI.BMJ@news.otago.ac.nz>,
  2183. michael@elwing.otago.ac.nz (Michael(tm) Hamel) wrote:
  2184.  
  2185. >What really gets me about OpenDoc is that its another factor thats going to
  2186. >push my company off the Macintosh.
  2187.  
  2188. Huh? No-one's forcing you to write for OpenDoc. The monolthic 
  2189. app approach will not die for several years yet.
  2190.  
  2191. >We have a substantial code base written in Object Pascal. Apple are saying to
  2192. >us, "Hey, rewrite everything in C++ in this entirely different way and thats
  2193. >the future". The trouble is, thats exactly the effort required to put us on
  2194.  
  2195. No, that's not what they're saying. You will have to 
  2196. re-structure your UI around the way OpenDoc delivers user 
  2197. interaction; true; and you will also have to re-write your 
  2198. saving code a bit, but OpenDoc is LANGUAGE NEUTRAL since it 
  2199. uses SOM. OLE, on the other hand, parses vtables, so it HAS to 
  2200. be written in C++.
  2201.  
  2202. Maybe you're confusing the design of OpenDoc with the current 
  2203. alpha implementation, which does indeed temporarily require C++.
  2204.  
  2205. >etc. But it requires us to trust the Apple who brought us MacApp and BedRock
  2206. >with an awfully similar-looking exercise. And we just can't afford to do that.
  2207.  
  2208. No. You have to trust CILabs. CILabs is sponsored by Apple, 
  2209. IBM, Novell, Word Perfect and lots of other people. Word 
  2210. Perfect is doing the Windows version of OpenDoc, and I hear the 
  2211. alpha is already out. Writing for OpenDoc really means writing 
  2212. for OpenDoc, not for a particular platform. There are of course 
  2213. platform-specific areas that need to be covered, but you can 
  2214. take your own cross-platform approach, or you can use an 
  2215. existing library (like the Open Parts Framework)
  2216.  
  2217. Cheers,
  2218.  
  2219.                     / h+
  2220.  
  2221.  
  2222.  
  2223. --
  2224.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  2225.     Not speaking for IBM.
  2226.  
  2227.  
  2228. +++++++++++++++++++++++++++
  2229.  
  2230. >From pchang@Xenon.Stanford.EDU (The Weasel)
  2231. Date: 21 Aug 1994 16:05:16 GMT
  2232. Organization: Computer Science Department, Stanford University.
  2233.  
  2234. >Even though I'm not competent to refute any of his observations,  I felt that
  2235. >the tone of the article was "Microsoft paid me to write this and so I'm putting
  2236. >it in the best possible light."
  2237.  
  2238. Well, Jeff Alger does work for Microsoft now. I don't recall the articl
  2239. ementioning this.
  2240.  
  2241. Peter
  2242.  
  2243.  
  2244.  
  2245. +++++++++++++++++++++++++++
  2246.  
  2247. >From 103t_english@west.cscwc.pima.edu
  2248. Date: 21 Aug 94 15:55:16 MST
  2249. Organization: (none)
  2250.  
  2251. In article <337tvs$qkv@Times.Stanford.EDU>, pchang@Xenon.Stanford.EDU (The Weasel) writes:
  2252. >>Even though I'm not competent to refute any of his observations,  I felt that
  2253. >>the tone of the article was "Microsoft paid me to write this and so I'm putting
  2254. >>it in the best possible light."
  2255. > Well, Jeff Alger does work for Microsoft now. I don't recall the articl
  2256. > ementioning this.
  2257. > Peter
  2258.  
  2259. I got e-amil from the MacTech guy (another what'sisname) who says that Jeff A.
  2260. was NOT working for MS when the article was published...
  2261.  
  2262. Fair enough. However, one might wonder as to when Mr. Alger submitted his
  2263. application to Microsoft (or did they approach him?), and did he hope that they
  2264. would read his article in a favorable light, thereby being more likely to hire
  2265. him.
  2266.  
  2267.  
  2268. Interesting: via the Internet, we can establish possible motives for biased
  2269. reporting that can be read and debated by thousands of interested folks. 20
  2270. years ago, we would probably be waiting for an expose from the newspapers which
  2271. probably wouldn't be forthcoming in this case.
  2272.  
  2273.  
  2274. Lawson
  2275.  
  2276. +++++++++++++++++++++++++++
  2277.  
  2278. >From nagle@netcom.com (John Nagle)
  2279. Date: Mon, 22 Aug 1994 01:50:25 GMT
  2280. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  2281.  
  2282. philip@cs.uct.ac.za (Philip Machanick) writes:
  2283. >John Nagle (nagle@netcom.com) wrote:
  2284.  
  2285. >:      A more fundamental problem is that all this machinery exists mostly
  2286. >: so you can embed different documents in your word processor and still
  2287. >: edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  2288. >: The Next Generation".  Yes, you can do other stuff, but the touted
  2289. >: advantage is mostly for integrated documents.  It's all focused on 
  2290. >: what documents look like, not what they mean.  Is that really worth all 
  2291. >: this complexity?  
  2292.  
  2293. >I think you miss the point. You can move away from a world of monolithic
  2294. >apps like word processors to generic apps in which you use your
  2295. >favourite editors. This is paradigm shift, not change of detail.
  2296.  
  2297.       This assumes you want an editor/document centered world.  There
  2298. are other models, such as a database-centered world.  For coordinating
  2299. the work of multiple people, a database-centered world may be more
  2300. appropriate.
  2301.  
  2302.       Whatever happened to Apple's SQL interface, anyway?  It was in
  2303. System 7, and optional in 7.1.  Is it in 7.5 at all?  I was hoping for
  2304. more data-centered apps, and groupware based on databases.
  2305.  
  2306.       The MacTech article indicates that OpenDoc is weak on locking
  2307. and networking.  How does this editor/document model work for multiple
  2308. users?
  2309.  
  2310.                     John Nagle
  2311.  
  2312. +++++++++++++++++++++++++++
  2313.  
  2314. >From sandvik@apple.com (Kent Sandvik)
  2315. Date: Mon, 22 Aug 1994 03:07:52 GMT
  2316. Organization: Dr. Stupid Meets Frankenstein
  2317.  
  2318. In article <CuuqMI.BMJ@news.otago.ac.nz>
  2319. michael@elwing.otago.ac.nz (Michael(tm) Hamel) writes:
  2320.  
  2321. > We have a substantial code base written in Object Pascal. Apple are saying to
  2322. > us, "Hey, rewrite everything in C++ in this entirely different way and thats
  2323. > the future". The trouble is, thats exactly the effort required to put us on
  2324. > Windows. Now, I believe, and I'm sure you'll agree, that moving to OpenDoc
  2325. > would be a much "nicer" thing to do and would produce a better user experience,
  2326. > etc. But it requires us to trust the Apple who brought us MacApp and BedRock
  2327. > with an awfully similar-looking exercise. And we just can't afford to do that.
  2328. > Maybe in twelve or eighteen months it will be clearer that we can, but we may
  2329. > have to commit ourselves before then. To Windows.
  2330.  
  2331. Hmm, I thought it was the other way around, OLE requires vtables and
  2332. SOM used in OpenDoc is more language independent. I need to check this
  2333. out. I think the reason some believe that OpenDoc is C++ centric is
  2334. that it uses ASLM today, but that's transitory.
  2335.  
  2336. As for Jeff A. writing the article, hehehe.... That explains the
  2337. controversy. He's also involved in MFC training and consulting. Anyway,
  2338. nobody's neutral in the computing wars. Where are the CORBRA followers,
  2339. BTW?
  2340.  
  2341. Cheers, Kent
  2342. - -
  2343. Kent Sandvik, sandvik@apple.com
  2344. --Private activities on the net, not related to the company I work for
  2345. --
  2346.  
  2347. +++++++++++++++++++++++++++
  2348.  
  2349. >From neil_ticktin@xplain.com (Neil Ticktin)
  2350. Date: Mon, 22 Aug 1994 06:26:02 GMT
  2351. Organization: MacTech Magazine/Xplain Corporation
  2352.  
  2353. In article <337tvs$qkv@Times.Stanford.EDU>, pchang@Xenon.Stanford.EDU (The
  2354. Weasel) wrote:
  2355.  
  2356. >> >Even though I'm not competent to refute any of his observations,  I
  2357. felt that
  2358. >> >the tone of the article was "Microsoft paid me to write this and so
  2359. I'm putting
  2360. >> >it in the best possible light."
  2361. >> 
  2362. >> Well, Jeff Alger does work for Microsoft now. I don't recall the articl
  2363. >> ementioning this.
  2364. >> 
  2365. >> Peter
  2366.  
  2367. Peter,
  2368.  
  2369. I need to be perfectly clear here.  Jeff was not in any way affiliated or
  2370. discussing affiliation with Microsoft until AFTER the article was
  2371. published.  As I heard it, Microsoft was so impressed by the article, they
  2372. asked him to join the company.
  2373.  
  2374. See what writing for MacTech Magazine can do for your career?  :)
  2375.  
  2376. But again -- he was unbiased at the time he wrote the article and that is
  2377. what is important.
  2378.  
  2379. Thanks,
  2380.  
  2381. Neil Ticktin
  2382. MacTech Magazine
  2383.  
  2384. - ---------------------------------------------------------------------
  2385.            Neil Ticktin, MacTech Magazine (formerly MacTutor)
  2386. PO Box 250055, Los Angeles, CA 90025 * 310-575-4343 * Fax: 310-575-0925
  2387.  For more info, anonymous ftp to ftp.netcom.com and cd to /pub/xplain
  2388.   custservice@xplain.com * editorial@xplain.com * adsales@xplain.com
  2389. marketing@xplain.com * accounting@xplain.com * pressreleases@xplain.com
  2390.    progchallenge@xplain.com * publisher@xplain.com * info@xplain.com
  2391.  
  2392. +++++++++++++++++++++++++++
  2393.  
  2394. >From philip@cs.uct.ac.za (Philip Machanick)
  2395. Date: 21 Aug 1994 11:59:23 +0200
  2396. Organization: Computer Science Department, University of Cape Town
  2397.  
  2398.  
  2399. Kent Sandvik (sandvik@apple.com) wrote:
  2400. : In article <334tko$jjq@cs.uct.ac.za>
  2401.  
  2402. : You are on the right track, a lot of the OLE versus OpenDoc has to do
  2403. : with techno-political, strategic games. Microsoft would not like to
  2404. : loose the lucrative market of selling base applications to office
  2405. : environments. Imagine a future where anyone could buy cheaper
  2406. : components and put together their favourite environment. The content is
  2407. : the content, and the tools are the tools.
  2408.  
  2409. : There will of course be a nice market for companies that bundle part
  2410. : handlers so the end result is indeed a classical application. However
  2411. : Microsoft would no longer have full control of their base line
  2412. : application offerings, and that's something they don't want to loose.
  2413. : Thus their technical drive behind OLE is more to make sure that
  2414. : applications offer OLE support, and of course their applications are
  2415. : the prime OLE engines. 
  2416.  
  2417. : Think about this next time you read technical blurbs from Microsoft
  2418. : about OLE. Anyway, private comments. I would rather see a world where
  2419. : all kinds of companies are allowed to compete on the application arena,
  2420. : instead of having one single big company dictate the rules.
  2421.  
  2422. I would still like to see more on OLE - even if I am on the right
  2423. track without knowing anything :) Does MS have an ftp site or WW
  2424. server with documentation?
  2425.  
  2426. In 1987, I started thinking about Brad Cox's Software IC idea -
  2427. reusable components written in a object-oriented language. His notion
  2428. was that software should be sold in small reusable units, the way
  2429. chips are sold.
  2430.  
  2431. However, I felt that something was missing. Most people who add ICs
  2432. (chips) to things like computers are not engineers who design the
  2433. whole thing from board level up. What was really needed was the
  2434. software analog of the printed circuit board (PCB), already populated
  2435. with enough ICs to get you started. Something like a PC logic board,
  2436. with RAM, FPU and other options left out - and slots for expansion.
  2437.  
  2438. I considered various candidates for software PCBs among existing OO
  2439. tools, and felt none of them provided enough support for plugging in
  2440. components - they were more like the software equivalent of wire
  2441. wrap prototypes. A true software PCB would have to define an
  2442. infrastructure for adding components that would not only define
  2443. default behaviours, like low-level printer protocols, but also
  2444. ways for components to interact (the software analog of traces on
  2445. the PCB, and hardware interaction protocols - voltage levels etc.).
  2446. Components would have to define how they appeared on a page,
  2447. shared space with neighouring objects, etc.
  2448.  
  2449. Another idea I had was that everything should be a document -
  2450. there shouldn't even be a separate file system. Viewing what's
  2451. on your disk then becomes a special case of viewing contents
  2452. of a document - and alternative views also become a natural
  2453. concept. I dislike imposing a single hierarchy on the world,
  2454. and by allowing alternative views of the "file system", it
  2455. should be possible to navigate through your disk in a way
  2456. natural to the task at hand. For example, group together
  2457. everything created after a certain date, view everything
  2458. related to a specific project etc. I also thought up the
  2459. idea of thumbnail views - I felt something was needed
  2460. between an icon and a full view of a document.
  2461.  
  2462. I think it would be very interesting to put together an
  2463. OpenDoc hierarchical browser similar to the Smalltalk
  2464. browser, which would allow navigation of the file system
  2465. according to a range of criteria (take the System 7 Find
  2466. as a starting point). The lowest level of the browser would
  2467. be a document - which you could start working on. One level
  2468. up, names of everything that matched the search criteria,
  2469. with the option of expanding to thumbnail views. Next level
  2470. up, the search criteria.
  2471.  
  2472. I don't claim all these ideas are original - though until
  2473. OpeDoc appeared, I don't recall seeing them put together
  2474. in this way. The way OpenDoc packages these concepts is
  2475. a paradigm shift - it changes the way we thing about
  2476. documents and applications - it is not just another
  2477. kludge to make it easier to share information.
  2478.  
  2479. I had a student do a protype software PCB in MacApp and tried
  2480. to get a paper published on the subject, and guess what? A few
  2481. of the referees were really taken with the idea, others said
  2482. so what - everyone's doing this. (Something like the people
  2483. who are now saying so what - OLE is almost the same as
  2484. OpenDoc.) My prototype was not very complete - I didn't have
  2485. a very good model of dynamic linking - but it was prossible
  2486. in principle to paste in editors using ResEdit. I also didn't
  2487. have all the machinery for communication between different
  2488. kinds of objects (parts in OpenDoc terminology). I suppose
  2489. I could have pushed the idea further but I moved on to
  2490. other things.
  2491.  
  2492. More recently, I saw an element of the idea in the way
  2493. Claris Works integrated patches of other documents in
  2494. a base document, though without the extensibility. It
  2495. is interesting that a lot of the examples in the OpenDoc
  2496. printed documentation come from Claris Works.
  2497.  
  2498. Where does OpenDoc fit into this? A base OpenDoc collection of part
  2499. handlers, ready to have more added to make a useful "application", is
  2500. a software PCB. OpenDoc itself is more like a standard and set of
  2501. tools for creating such PCBs - the software analogue of something like
  2502. PReP.
  2503.  
  2504. Any further thoughts on this?
  2505. --
  2506. Philip Machanick                      philip@cs.wits.ac.za
  2507. Computer Science Department, University of he Witwatesrand
  2508. 2050 Wits, South Africa 27(11)716-3309 fax 339-7965
  2509. (at University of Cape Town until November: 27(21)650-4058)
  2510.  
  2511. +++++++++++++++++++++++++++
  2512.  
  2513. >From h+@nada.kth.se (Jon W{tte)
  2514. Date: Mon, 22 Aug 1994 14:54:24 +0200
  2515. Organization: Royal Institute of Something or other
  2516.  
  2517. In article <nagleCuwyG1.IEJ@netcom.com>,
  2518. nagle@netcom.com (John Nagle) wrote:
  2519.  
  2520. >Whatever happened to Apple's SQL interface, anyway?  It was in
  2521. >System 7, and optional in 7.1.  Is it in 7.5 at all?  I was hoping for
  2522. >more data-centered apps, and groupware based on databases.
  2523.  
  2524. It's undergone development; they now support ODBC alongside 
  2525. with DAL. ODBC is of course a Microsoft standard, but in this 
  2526. one case it seems Apple and Microsoft could agree on using the 
  2527. same technology...
  2528.  
  2529. Of course, doing ODBC -> DAL tranlsation, talking to a DAL 
  2530. server that translates into native SQL, and then finally 
  2531. getting at the database isn't optimal, performance-wise.
  2532.  
  2533. Cheers,
  2534.  
  2535.                 / h+
  2536.  
  2537.  
  2538. --
  2539.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  2540.  "Don't Deal with a Dragon."
  2541.  
  2542.  
  2543. +++++++++++++++++++++++++++
  2544.  
  2545. >From sandvik@apple.com (Kent Sandvik)
  2546. Date: Tue, 23 Aug 1994 00:41:13 GMT
  2547. Organization: Dr. Stupid Meets Frankenstein
  2548.  
  2549. In article <3378hr$mkp@cs.uct.ac.za>
  2550. philip@cs.uct.ac.za (Philip Machanick) writes:
  2551.  
  2552. > In 1987, I started thinking about Brad Cox's Software IC idea -
  2553. > reusable components written in a object-oriented language. His notion
  2554. > was that software should be sold in small reusable units, the way
  2555. > chips are sold.
  2556.  
  2557. Jacobson's book "Object Oriented Software Engineering" has a fairly
  2558. good chapter describing all the problems why software reusable
  2559. components never took off in the initial place. The latest Scientific
  2560. American also has an article describing more about the implications. My
  2561. terse comment is: "It's all in the culture, dammit".
  2562.  
  2563. One tricky way to bypass such cases is to promote a frame into which
  2564. people could write extensions, and promote the content rather than the
  2565. functionality (Photoshop, Premier, OpenDoc...). Another example of a
  2566. smart content container is QuickTime; it is defined, and it's up to
  2567. developers to write applications and tools that reuse or create content
  2568. (QT). Personally I think this is the way to do rather than forcing
  2569. companies and developers to use pre-defined components that don't do
  2570. the work required, and we are back on the hacking drawing board.  And
  2571. we should not lock ourselves to a particular computer language (style
  2572. OLE and vtables). 
  2573.  
  2574. Anyway, personal and of course politically flavored comments :-).
  2575.  
  2576. --Kent
  2577. - -
  2578. Kent Sandvik, sandvik@apple.com
  2579. --Private activities on the net, not related to the company I work for
  2580. --
  2581.  
  2582. +++++++++++++++++++++++++++
  2583.  
  2584. >From pathak@world.std.com (Heeren H Pathak)
  2585. Date: Tue, 23 Aug 1994 13:26:19 GMT
  2586. Organization: The World Public Access UNIX, Brookline, MA
  2587.  
  2588. In article <nagleCuwyG1.IEJ@netcom.com>, John Nagle <nagle@netcom.com> wrote:
  2589. >      This assumes you want an editor/document centered world.  There
  2590. >are other models, such as a database-centered world.  For coordinating
  2591. >the work of multiple people, a database-centered world may be more
  2592. >appropriate.
  2593. >
  2594.  
  2595. Believe it or not this is where OpenDoc may really shine.
  2596.  
  2597. Despite the blasting of SOM in Jeff Alger's article  comparing OpenDoc vs OLE,
  2598. SOM may be the the biggest "enabling " technology of OpenDoc.  OpenDoc
  2599. is really an object model on extending SOM.  SOM is a technology for 
  2600. supporting distributed objects.  This happens to be ideal for developing
  2601. object components.  SOM is based on a "industry standard" specification 
  2602. released by a consoritium called the Object Management Group.  There
  2603. are working groups in this consortia that are defining object models and
  2604. frameworks for database systems, collaborative computing, transaction 
  2605. processing, etc...  As these object models get defined, there is no
  2606. technical reason they could not be adopted by CLI.  In fact, CLI has been
  2607. asked to submit OpenDoc as the "standard" for compound documents.
  2608.  
  2609. The biggest danger in all of this is the "standard" will be too late.  I
  2610. believe this is a real risk.  However, I think the OMG has a very early 
  2611. start on this technology and has plenty of time to get things done.
  2612.  
  2613. Heeren Pathak
  2614.  
  2615.  
  2616.  
  2617. +++++++++++++++++++++++++++
  2618.  
  2619. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  2620. Date: Wed, 24 Aug 1994 00:39:33 GMT
  2621. Organization: Apple Computer
  2622.  
  2623. 103t_english@west.cscwc.pima.edu writes:
  2624. > Even though I'm not competent to refute any of his observations,  I felt
  2625. that
  2626. > the tone of the article was "Microsoft paid me to write this and so I'm
  2627. putting
  2628. > it in the best possible light."
  2629. > Anyone else get this feeling?
  2630.  
  2631. I'm obviously not unbiased in this, so I'll skip my own opinions of the
  2632. article; but I can point out that since the publication of said article, the
  2633. author has accepted a position at Microsoft. Draw your own conclusions.
  2634.  
  2635. --Jens Alfke                           jens_alfke@powertalk.apple.com
  2636.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  2637.  
  2638. +++++++++++++++++++++++++++
  2639.  
  2640. >From alger@netcom.com (Jeff Alger)
  2641. Date: Thu, 25 Aug 1994 06:51:41 GMT
  2642. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  2643.  
  2644. OK, I've had enough of this.  If you want to disagree with my opinions, 
  2645. fine.  I have yet to have anyone question items of fact in all of a 6000 
  2646. word article which was submitted to both Microsoft and Apple for review 
  2647. before publication.
  2648.  
  2649. I will say this once and only once because it isn't worth the trouble.  
  2650. Until becoming an employee of Microsoft last week, two months after the 
  2651. article was completed, I had never accepted a dime from Microsoft nor had 
  2652. any business relationship whatsoever, other than asking them for 
  2653. information as I would have Apple or any other vendor.  I had no interest 
  2654. in getting a job with Microsoft or anyone else at the time of writing the 
  2655. article.  Microsoft approached me AFTER the article was submitted to 
  2656. MacTech in final form.  I find it highly doubtful that they would have 
  2657. been interested in hiring me if my integrity was for sale and I certainly 
  2658. would not have been interested in working for a company that would act in 
  2659. such an unethical way.  At no time was any offer of money or employment 
  2660. made in connection with the article.
  2661.  
  2662. There are many of you out there that have known me for many years within
  2663. the Mac community - Chairman of MADA for two years, instructor at Apple's
  2664. Developer University, author of a popular book on object-oriented
  2665. development for the Mac, consultant, contributing editor to Frameworks,
  2666. presenter at several WWDC's.  My consulting practice has always been built
  2667. on the highest degree of professionalism and integrity and yes, Kent, I
  2668. have dealt with Windows, as well as Mac, mainframe, business process
  2669. reengineering and any other problems my clents have needed help with. 
  2670. That is in part why I was chosen to write this article.  Certainly that
  2671. was known to Apple when they OK'd me as an independent reviewer of the two
  2672. products. 
  2673.  
  2674. This sort of mud-slinging has no place in a professional forum.  If any of
  2675. you have a problem with my ethics, take it up directly with me; don't drop
  2676. snide observations in a public forum.  Those who know me can tell you that
  2677. I will answer any and all questions honestly about my assumptions,
  2678. methodology and motivations in writing the article. 
  2679.  
  2680. I can be reached either at this email address or at jeffal@microsoft.com.
  2681.  
  2682. Regards,
  2683. Jeff Alger
  2684.  
  2685. Jens Alfke (jens_alfke@powertalk.apple.com) wrote:
  2686. : 103t_english@west.cscwc.pima.edu writes:
  2687. : > Even though I'm not competent to refute any of his observations,  I felt
  2688. : that
  2689. : > the tone of the article was "Microsoft paid me to write this and so I'm
  2690. : putting
  2691. : > it in the best possible light."
  2692. : > Anyone else get this feeling?
  2693.  
  2694. : I'm obviously not unbiased in this, so I'll skip my own opinions of the
  2695. : article; but I can point out that since the publication of said article, the
  2696. : author has accepted a position at Microsoft. Draw your own conclusions.
  2697.  
  2698. : --Jens Alfke                           jens_alfke@powertalk.apple.com
  2699. :                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  2700. -- 
  2701.  
  2702.  
  2703. +++++++++++++++++++++++++++
  2704.  
  2705. >From hanrek@cts.com (Mark Hanrek)
  2706. Date: 25 Aug 1994 21:08:03 GMT
  2707. Organization: The Information Workshop
  2708.  
  2709. > This sort of mud-slinging has no place in a professional forum.  
  2710.  
  2711. Here! Here! 
  2712.  
  2713. Everyone deserves respect, and the benefit of the doubt.
  2714.  
  2715.  
  2716.  
  2717. Mark Hanrek
  2718. The Information Workshop
  2719.  
  2720. - --------------------------------------------------------------------
  2721. ( And y'all though I was going to point out that csmp is a newsgroup, 
  2722.   not a forum, dintcha!  :)
  2723. >From eric.larson@f620.n2605.z1.fidonet.org (eric larson)
  2724. Subject: Lets talk OpenDoc
  2725. Date: 21 Aug 94 08:27:51 -
  2726. Organization: FidoNet: Shockwave Rider, USR V.Everything +1(908)294-0659 
  2727.  
  2728.  >      A more fundamental problem is that all this machinery exists mostly
  2729.  > so you can embed different documents in your word processor and still
  2730.  > edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  2731.  > The Next Generation".  Yes, you can do other stuff, but the touted
  2732.  > advantage is mostly for integrated documents.  It's all focused on
  2733.  > what documents look like, not what they mean.  Is that really worth all
  2734.  > this complexity?
  2735.  
  2736. One concern I have about this technology is what it is going to do to document
  2737. portability.
  2738.  
  2739. +++++++++++++++++++++++++++
  2740.  
  2741. >From nagle@netcom.com (John Nagle)
  2742. Date: Mon, 29 Aug 1994 19:04:43 GMT
  2743. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  2744.  
  2745. eric.larson@f620.n2605.z1.fidonet.org (eric larson) writes:
  2746. Nagle wrote:
  2747. > >      A more fundamental problem is that all this machinery exists mostly
  2748. > > so you can embed different documents in your word processor and still
  2749. > > edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  2750. > > The Next Generation".  Yes, you can do other stuff, but the touted
  2751. > > advantage is mostly for integrated documents.  It's all focused on
  2752. > > what documents look like, not what they mean.  Is that really worth all
  2753. > > this complexity?
  2754. >One concern I have about this technology is what it is going to do to document
  2755. >portability.
  2756.  
  2757.       Or long-term document integrity.  Will you still be able to read
  2758. your document a few years downstream, after all the applications have
  2759. changed?  And if you can't, which vendor do you call for help?
  2760.  
  2761.       And reading a document two decades hence may present real problems.
  2762.  
  2763.                     John Nagle
  2764.  
  2765. +++++++++++++++++++++++++++
  2766.  
  2767. >From E.J. Draper <draper@utmdacc.mda.uth.tmc.edu>
  2768. Date: 29 Aug 1994 20:29:43 GMT
  2769. Organization: U.T.M.D. Anderson Cancer Center
  2770.  
  2771.  
  2772. >> > edit them with appropriate tools.  It's sort of "Publish and
  2773. Subscribe,
  2774. >> > The Next Generation".  Yes, you can do other stuff, but the touted
  2775.  
  2776. How many times a day do you use Publish and Subscribe?  
  2777.  
  2778. The one, and only, application I have for Publish and Subscribe
  2779. technology is checking the amount of vacation hours I've got coming to me
  2780. from the departmental spreadsheet.  I use it once a week at the most,
  2781. probably more like once a month. 
  2782.  
  2783. I can see some interesting applications of OpenDoc technology, but I
  2784. certainly don't feel it's as mind-boggling awesome as the market-droids
  2785. would have us think.  What's OpenDoc going to do for me?  Does a compiler
  2786. part make sense?  How about news reader part?  An email part? A PIM part?
  2787. A Resorcerer part?  How does OpenDoc improve the way that people work
  2788. with information?  Does it make the computer more approachable to novice
  2789. users?  What specific problem is it trying to solve?
  2790.  
  2791. It seems like the whole OpenDoc paradigm starts breaking down after you
  2792. get past the Graphic+MooV+Text+Spreadsheet model.
  2793.  
  2794.  
  2795.       |E|J-  ED DRAPER
  2796.  rEpar|D|<-  Radiologic/Pathologic Institute
  2797.              The University of Texas M.D. Anderson Cancer Center
  2798.              draper@utmdacc.mda.uth.tmc.edu
  2799.  
  2800. +++++++++++++++++++++++++++
  2801.  
  2802. >From nagle@netcom.com (John Nagle)
  2803. Date: Tue, 30 Aug 1994 05:28:45 GMT
  2804. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  2805.  
  2806. E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> writes:
  2807. >It seems like the whole OpenDoc paradigm starts breaking down after you
  2808. >get past the Graphic+MooV+Text+Spreadsheet model.
  2809.  
  2810.       I think he has a point.  I can imagine a CAD system based on this
  2811. approach, where you click on a subassembly to get to the detailed drawings.
  2812. But that doesn't even fit the OpenDoc model, which is 2D, not 3D.
  2813. What, besides embed stuff in word processor documents, is one really likely
  2814. to do with OpenDoc?
  2815.  
  2816.       By the way, how does OpenDoc do version management?
  2817.  
  2818.                     John Nagle
  2819.  
  2820. +++++++++++++++++++++++++++
  2821.  
  2822. >From quinlan@kits.sfu.ca (Brian Quinlan)
  2823. Date: 30 Aug 94 07:09:52 GMT
  2824. Organization: Simon Fraser University
  2825.  
  2826. E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> writes:
  2827.  
  2828. >I can see some interesting applications of OpenDoc technology, but I
  2829. >certainly don't feel it's as mind-boggling awesome as the market-droids
  2830. >would have us think.  What's OpenDoc going to do for me?  Does a compiler
  2831. >part make sense?  How about news reader part?  An email part? A PIM part?
  2832. >A Resorcerer part?  How does OpenDoc improve the way that people work
  2833. >with information?  Does it make the computer more approachable to novice
  2834. >users?  What specific problem is it trying to solve?
  2835.  
  2836. You could build a development system by have a project manager as the
  2837. base and compiler, interface builders, object browsers, debuggers and
  2838. editors as parts. Notice that Symantic has a project manager and then
  2839. calls the appropriate compiler and editor when they are needed. You
  2840. could have a bases upon which you had a newreader, email and ftp parts.
  2841. Anyone agree with this?
  2842.  
  2843.  
  2844. +++++++++++++++++++++++++++
  2845.  
  2846. >From jdelkins@lilly.com (Joel D. Elkins)
  2847. Date: Tue, 30 Aug 1994 09:39:27 -0600
  2848. Organization: NewMedia, Inc., Indianapolis, IN
  2849.  
  2850. In article <33tgfn$r62@oac4.hsc.uth.tmc.edu>, E.J. Draper
  2851. <draper@utmdacc.mda.uth.tmc.edu> wrote:
  2852.  
  2853. > I can see some interesting applications of OpenDoc technology, but I
  2854. > certainly don't feel it's as mind-boggling awesome as the market-droids
  2855. > would have us think.  What's OpenDoc going to do for me?  Does a compiler
  2856. > part make sense?  How about news reader part?  An email part? A PIM part?
  2857. > A Resorcerer part?  How does OpenDoc improve the way that people work
  2858. > with information?  Does it make the computer more approachable to novice
  2859. > users?  What specific problem is it trying to solve?
  2860.  
  2861. And what about client-server based apps, much in use by corporations today,
  2862. for which the "document" paradigm really doesn't apply. Most of
  2863. the c/s apps I've seen are more "forms" based. How will OpenDoc improve
  2864. such apps? Unless it does, I don't see widespread acceptance by corporations
  2865. for their in-house development efforts.
  2866.  
  2867. -- 
  2868. Joel D. Elkins, N5USU              |                   NewMedia, Inc.
  2869. JDElkins@lilly.com                 |                 Indianapolis, IN
  2870.  
  2871. +++++++++++++++++++++++++++
  2872.  
  2873. >From rmah@panix.com (Robert Mah)
  2874. Date: Tue, 30 Aug 1994 12:47:01 -0500
  2875. Organization: One Step Beyond
  2876.  
  2877. jdelkins@lilly.com (Joel D. Elkins) wrote:
  2878.  
  2879. ) And what about client-server based apps, much in use by corporations
  2880. ) today, for which the "document" paradigm really doesn't apply. Most of
  2881. ) the c/s apps I've seen are more "forms" based. How will OpenDoc improve
  2882. ) such apps? Unless it does, I don't see widespread acceptance by
  2883. ) corporations for their in-house development efforts.
  2884.  
  2885. While Apple has emphasised the user interface portion of OpenDoc, the 
  2886. "document-centered" model, from my conversations with one of the OpenDoc
  2887. developers at the last MacWorld expo, I firmly beleive that OpenDoc's
  2888. flexible architecture will help corporate developers a great deal.
  2889.  
  2890. Aside...
  2891.   Q: What is the difference between a "form" and a "document"?
  2892.   A: A form only has 1 page, but document's have a lot!  :-)
  2893.  
  2894. A couple of, not widely talked about, components are integrall here.
  2895. The first is the name space management feature.  I guess this is part
  2896. of SOM, but OpenDoc gives you an architecture to wrap your mind around.
  2897. With name space management, you could register a "analysis engine" 
  2898. part on one machine, and have documents on another machine access it
  2899. to perform the analysis.
  2900.  
  2901. Other parts that could/are being developed include hooks for retreiving
  2902. data from SQL databases, intelligent report writing, etc.
  2903.  
  2904. Another problem that OpenDoc will eventually help solve is the dreaded
  2905. "why can't XYZ app do what Excel does?"  How many times have you, as a
  2906. in house developer, written a software package only to have the users
  2907. come back asking for features that are found in other commercial packages?
  2908. It may be obvious to us that adding these frills would take too much 
  2909. time and cost too much, but it's not obvious to the users.  By encouraging
  2910. more vendors to implement a wide variety of parts that can interoperate
  2911. together easily, we'll be able to add these frills at minimal cost.
  2912.  
  2913. Personally, I think that OpenDoc could make the creation of special
  2914. purpose software much easier and much more enjoyable.
  2915.  
  2916. Cheers,
  2917. Rob
  2918. _____________________________________________________________________
  2919. Robert S. Mah           Software Development          +1.212.947.6507
  2920. One Step Beyond        and Network Consulting          rmah@panix.com
  2921.  
  2922. +++++++++++++++++++++++++++
  2923.  
  2924. >From lentz@rossi.astro.nwu.edu (Robert Lentz)
  2925. Date: 30 Aug 1994 16:45:54 GMT
  2926. Organization: Northwestern University, Evanston, Illinois, USA
  2927.  
  2928. In article <33tgfn$r62@oac4.hsc.uth.tmc.edu>,
  2929. E.J. Draper  <draper@utmdacc.mda.uth.tmc.edu> wrote:
  2930. >...
  2931. >It seems like the whole OpenDoc paradigm starts breaking down after you
  2932. >get past the Graphic+MooV+Text+Spreadsheet model.
  2933.  
  2934. Well, that covers all the basic types which other applications use too.
  2935.  
  2936. Let's see: newsreader using a text part for composing messages, same with
  2937. mail program; perhaps sometimes using a WWW part for displaying HTML
  2938. documents, which then uses the text part and any necessary graphics parts
  2939. again...
  2940.  
  2941. I think it could go far.
  2942.  
  2943. -Robert
  2944. -- 
  2945. lentz@rossi.astro.nwu.edu            http://www.astro.nwu.edu/lentz/plan.html
  2946.     "You have to push as hard as the age that pushes against you."
  2947.                     -Flannery O'Connor
  2948.  
  2949. +++++++++++++++++++++++++++
  2950.  
  2951. >From nagle@netcom.com (John Nagle)
  2952. Date: Tue, 30 Aug 1994 16:40:42 GMT
  2953. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  2954.  
  2955. quinlan@kits.sfu.ca (Brian Quinlan) writes:
  2956. >You could build a development system by have a project manager as the
  2957. >base and compiler, interface builders, object browsers, debuggers and
  2958. >editors as parts. Notice that Symantic has a project manager and then
  2959. >calls the appropriate compiler and editor when they are needed. 
  2960.     The whole development environment shouldn't be a structured document,
  2961. but source programs might be.  Programs today have parts which are visual
  2962. and parts which are textual, and those parts need to be better connected.
  2963. HyperCard already does this.
  2964.  
  2965. >You could have a basis upon which you had a newsreader, email and ftp parts.
  2966.     You could, but why would you want to embed those functions in a
  2967. structured document?  A document is the wrong metaphor for that collection
  2968. of functions.  There's no content in which you're embedding those
  2969. functions.  A multiwindow application is more appropriate.
  2970.  
  2971.     An OpenDoc or OLE-based creation system for multimedia content
  2972. would make sense, but that's an extension of the word processor metaphor.
  2973.  
  2974.     The whole multi-source document concept is useful, but only for things
  2975. that naturally have a document metaphor.
  2976.  
  2977.                     John Nagle
  2978.  
  2979. +++++++++++++++++++++++++++
  2980.  
  2981. >From susser@apple.com (Joshua Susser)
  2982. Date: Tue, 30 Aug 1994 17:29:47 GMT
  2983. Organization: Apple Computer - AppleSoft
  2984.  
  2985. I'm going to try to respond to several issues raised in this thread, to
  2986. keep the branching factor down.  I don't usually have time to do this, but
  2987. since I do, here goes...
  2988.  
  2989. eric.larson@f620.n2605.z1.fidonet.org (eric larson) writes:
  2990. > One concern I have about this technology is what it is going to do to
  2991. > document portability.
  2992.  
  2993. If anything, OpenDoc should make your documents MORE portable.  OpenDoc
  2994. documents will be binary-compatible across all supported platforms.  Our
  2995. acid test is being able to open a document on a server from a Mac and a
  2996. Windows machine at the same time, which you should be able to do when we
  2997. ship.
  2998.  
  2999. nagle@netcom.com (John Nagle) wrote:
  3000. >       Or long-term document integrity.  Will you still be able to read
  3001. > your document a few years downstream, after all the applications have
  3002. > changed?  And if you can't, which vendor do you call for help?
  3003. >       And reading a document two decades hence may present real problems.
  3004.  
  3005. I already have this problem.  Some documents I have that are only 3 or 4
  3006. years old are suddenly non-readable, because their applications won't run
  3007. on current software, or whatever.  But we have factored the architecture
  3008. so that if you don't have an editor for one kind of part in your document,
  3009. you can still open the document and edit the other parts for which you do
  3010. have editors.  We also encourage developers to store their parts in
  3011. multiple formats, so that if you don't have an editor for one format, you
  3012. may for another.
  3013.  
  3014. I have no idea what the world will be like in 20 years, and neither do
  3015. you.  I doubt anyone will be using anything as mundane as compound
  3016. documents by then, so don't worry about it. :-)
  3017.  
  3018. nagle@netcom.com (John Nagle) wrote:
  3019. > E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> writes:
  3020. > >It seems like the whole OpenDoc paradigm starts breaking down after you
  3021. > >get past the Graphic+MooV+Text+Spreadsheet model.
  3022. >       I think he has a point.  I can imagine a CAD system based on this
  3023. > approach, where you click on a subassembly to get to the detailed drawings.
  3024. > But that doesn't even fit the OpenDoc model, which is 2D, not 3D.
  3025. > What, besides embed stuff in word processor documents, is one really likely
  3026. > to do with OpenDoc?
  3027.  
  3028. OpenDoc windows and layout objects are 2D, because that's the
  3029. dimensionality of the imaging devices available today (for the most
  3030. part).  But we did leave enough room in the API to support 3D parts.  It
  3031. should in fact be possible to embed a text part onto the surface of a 3D
  3032. sphere part.
  3033.  
  3034. But even without 3D, OpenDoc is suitable for much more than just a
  3035. "Graphic+MooV+Text+Spreadsheet" kind of document.  See below.
  3036.  
  3037. >       By the way, how does OpenDoc do version management?
  3038.  
  3039. OpenDoc documents provide a facility for creating a named revision of your
  3040. document called a "draft".  Each draft is basically a checkpoint of the
  3041. state of the document.  You can create a new draft at any time, have as
  3042. many as you like, open old drafts to compare to newer, etc.  Using Bento,
  3043. we can store each draft as a delta on the state of the previous draft, so
  3044. we don't double the size of a document to add a second draft.  There's
  3045. lots more about drafts, but you can read the documentation for that.
  3046.  
  3047. jdelkins@lilly.com (Joel D. Elkins) wrote:
  3048. > And what about client-server based apps, much in use by corporations today,
  3049. > for which the "document" paradigm really doesn't apply. Most of
  3050. > the c/s apps I've seen are more "forms" based. How will OpenDoc improve
  3051. > such apps? Unless it does, I don't see widespread acceptance by corporations
  3052. > for their in-house development efforts.
  3053.  
  3054. Actually, OpenDoc has a great story for in-house MIS types.  They have two
  3055. big desires - being able to use COTS (Commercial Off The Shelf) Software,
  3056. and getting a vertical solution for their special needs.  Notice these two
  3057. desires are in direct conflict.  But with component technology like
  3058. OpenDoc, you can buy a set of COTS part editors and maybe only have to
  3059. write one or two special purpose ones in house.  Then create standard
  3060. stationery using these chosen editors, write some scripts to integrate the
  3061. parts functionality, and presto, it's an instant vertical application,
  3062. custom made for your department with mostly COTS components.
  3063.  
  3064. As for client-server, OpenDoc supports the concept of what we've been
  3065. calling an "embedded client".  Create a part editor that can operate as a
  3066. client for a remote server.  Now you have client parts that you can embed
  3067. in your document anywhere you'd like.  The state of the part is the query
  3068. rule plus some cached information about the results of the last query. 
  3069. When you open the document, push a button, or whatever, the part queries
  3070. the server and then displays the results of the query as its contents.  I
  3071. saw a demo yesterday of just such a client part editor written by Oracle
  3072. (it's a demo, not a future product).  You could even link a chart part to
  3073. data returned by a query.  Apparently this is even more powerful than
  3074. current solutions, as it is much easier to have a document ("solution")
  3075. that interacts with many databases - just create a part for each one.
  3076.  
  3077. Other kinds of embedded clients are easily possible.  Imagine a stock
  3078. ticker part that gave running price quotes on your 10 favorite stocks. 
  3079. Link this to a spreadsheet part to help you compute the net value of your
  3080. portfolio.
  3081.  
  3082. A good rule of thumb for what could and should be written as a part editor is:
  3083. "If it has a user interface, it should be a part."
  3084.  
  3085. Well, my compile is done, so back to work...
  3086.  
  3087. Joshua Susser, Object Contortionist
  3088. Apple Computer - AppleSoft, OpenDoc Engineering
  3089. inet: susser@apple.com | link: susser.j | phone: 408/974-6997
  3090.  
  3091. +++++++++++++++++++++++++++
  3092.  
  3093. >From h+@nada.kth.se (Jon W{tte)
  3094. Date: Tue, 30 Aug 1994 20:33:09 +0200
  3095. Organization: Royal Institute of Something or other
  3096.  
  3097. In article <33tgfn$r62@oac4.hsc.uth.tmc.edu>,
  3098. E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> wrote:
  3099.  
  3100. >would have us think.  What's OpenDoc going to do for me?  Does a compiler
  3101. >part make sense?
  3102.  
  3103. Yes; or rather; an IDE is a collection of parts like an editor 
  3104. part, a code generator part, a project file part, ...
  3105.  
  3106. >How about news reader part?
  3107.  
  3108. That's also a collection of an editor part, a news collection 
  3109. part, ...
  3110.  
  3111. >An email part?
  3112.  
  3113. See above.
  3114.  
  3115. >users?  What specific problem is it trying to solve?
  3116.  
  3117. Read the OpenDoc white paper. A simple example:
  3118.  
  3119. Your news reader comes with the SimpleText text edittig part. 
  3120. Unfortunately, this part does not handle parts larger than 32k, 
  3121. so to decode alt.binaries.pictures.erotica.jello, you instead 
  3122. use the Alpha text editting part which handles larger 
  3123. documents, and write a small script that scans the news 
  3124. collection part for multi-part postings, uses Alpha to 
  3125. concatenate them, uses the StuffIt mangling part to get an 
  3126. image which you display in the JPEGView picture display part.
  3127.  
  3128. Cheers,
  3129.  
  3130.                     / h+
  3131.  
  3132.  
  3133. --
  3134.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  3135.  
  3136.   Reality exists only in your imagination.
  3137.  
  3138.  
  3139. +++++++++++++++++++++++++++
  3140.  
  3141. >From 103t_english@west.cscwc.pima.edu
  3142. Date: 30 Aug 94 11:18:38 MST
  3143. Organization: (none)
  3144.  
  3145. In article <nagleCvCwzu.EF2@netcom.com>, nagle@netcom.com (John Nagle) writes:
  3146. > quinlan@kits.sfu.ca (Brian Quinlan) writes:
  3147. >>You could build a development system by have a project manager as the
  3148. >>base and compiler, interface builders, object browsers, debuggers and
  3149. >>editors as parts. Notice that Symantic has a project manager and then
  3150. >>calls the appropriate compiler and editor when they are needed. 
  3151. >     The whole development environment shouldn't be a structured document,
  3152. > but source programs might be.  Programs today have parts which are visual
  3153. > and parts which are textual, and those parts need to be better connected.
  3154. > HyperCard already does this.
  3155. >>You could have a basis upon which you had a newsreader, email and ftp parts.
  3156. >     You could, but why would you want to embed those functions in a
  3157. > structured document?  A document is the wrong metaphor for that collection
  3158. > of functions.  There's no content in which you're embedding those
  3159. > functions.  A multiwindow application is more appropriate.
  3160. >     An OpenDoc or OLE-based creation system for multimedia content
  3161. > would make sense, but that's an extension of the word processor metaphor.
  3162. >     The whole multi-source document concept is useful, but only for things
  3163. > that naturally have a document metaphor.
  3164. >                     John Nagle
  3165.  
  3166. Something that everyone seems to be missing in this discussion:
  3167.  
  3168. a while back, the OpenDoc architects had an AOL discussion which was archived.
  3169. >From the archive, I gleaned this interesting tidbit (from memory, sorry):
  3170.  
  3171. OpenDoc is robust enough to allow the creation of a Virtual REality where every
  3172. object in the VR is run on its own computer and collated by OpenDoc over the
  3173. network.
  3174.  
  3175.  
  3176. One would assume that the "document" in this case, would be a set of 3D VR
  3177. glasses or a 3D virtual environment complete with sound effects and tactile
  3178. effects ala high-end flight simulators (and beyond).
  3179.  
  3180.  
  3181. Given this ability of OpenDoc, what CAN'T it do?
  3182.  
  3183.  
  3184.  
  3185. Lawson
  3186.  
  3187. +++++++++++++++++++++++++++
  3188.  
  3189. >From E.J. Draper <draper@utmdacc.mda.uth.tmc.edu>
  3190. Date: 30 Aug 1994 18:47:40 GMT
  3191. Organization: U.T.M.D. Anderson Cancer Center
  3192.  
  3193.  
  3194. >If anything, OpenDoc should make your documents MORE portable.  OpenDoc
  3195. >documents will be binary-compatible across all supported platforms. 
  3196.  
  3197. Bento, and not OpenDoc, is the technology that will enable us to do this.
  3198.  Bento can be used quite easily by software other than OpenDoc parts.
  3199.  
  3200. >Actually, OpenDoc has a great story for in-house MIS types. 
  3201.  
  3202. Wrong. Users who *do not* build *DOCUMENTS* will be annoyed at having to
  3203. artificially create documents and incorporate parts just to get something
  3204. done. The result of every human-machine interaction is *not* a document. 
  3205. OpenDoc is an interesting and useful addition to the concept of building
  3206. documents, but it's only interesting and useful in those terms.  
  3207.  
  3208. OLE has been around for quite some time and what has the industry
  3209. learned?  How many people are using OLE in mission critical applications
  3210. every day?  How many people are out there screaming for OLE versions of
  3211. Doom and Netware Client tools?  
  3212.  
  3213. >A good rule of thumb for what could and should be written as a part
  3214. editor is:
  3215. >"If it has a user interface, it should be a part."
  3216.  
  3217. I vehemently disagree.
  3218.  
  3219.  
  3220.       |E|J-  ED DRAPER
  3221.  rEpar|D|<-  Radiologic/Pathologic Institute
  3222.              The University of Texas M.D. Anderson Cancer Center
  3223.              draper@utmdacc.mda.uth.tmc.edu
  3224.  
  3225. +++++++++++++++++++++++++++
  3226.  
  3227. >From tbrown@magnus.acs.ohio-state.edu (Ted C Brown)
  3228. Date: 30 Aug 1994 19:15:12 GMT
  3229. Organization: The Ohio State University
  3230.  
  3231. In article <33vno2$gco@news.acns.nwu.edu>,
  3232. Robert Lentz <lentz@rossi.astro.nwu.edu> wrote:
  3233. >In article <33tgfn$r62@oac4.hsc.uth.tmc.edu>,
  3234. >E.J. Draper  <draper@utmdacc.mda.uth.tmc.edu> wrote:
  3235. >>...
  3236. >>It seems like the whole OpenDoc paradigm starts breaking down after you
  3237. >>get past the Graphic+MooV+Text+Spreadsheet model.
  3238. >
  3239. >Well, that covers all the basic types which other applications use too.
  3240. >
  3241. >Let's see: newsreader using a text part for composing messages, same with
  3242. >mail program; perhaps sometimes using a WWW part for displaying HTML
  3243. >documents, which then uses the text part and any necessary graphics parts
  3244. >again...
  3245.  
  3246. Having the "display HTML" part available would make any text editor closer
  3247. to a graphical HTML editor.  All the "Helper" apps would fold within
  3248. the document as well (but there isn't much gain here).  Sure make it 
  3249. easier to add the option-click on URL in Newswatcher though.
  3250.  
  3251. Also, having all the parts work within OpenDoc makes it easier to have a
  3252. central point that all such apps go to get user information. No more
  3253. constant filling out email/server names for each new net application that
  3254. is installed.  I know this could be done some other way -- but it seems it
  3255. would be simple in OpenDoc.  The OpenDoc method might allow two people to 
  3256. have open connects at the same time, something you can't do currently with
  3257. net packages. If someone else wants to read mail with Eudora on my 
  3258. machine, I have to quit Eudora so they can restart it with the proper settings
  3259. file.
  3260.  
  3261.  
  3262.  
  3263. +++++++++++++++++++++++++++
  3264.  
  3265. >From edcessna@netcom.com (Edward Cessna)
  3266. Date: Tue, 30 Aug 1994 12:54:59 -0700
  3267. Organization: Disney
  3268.  
  3269. >     An OpenDoc or OLE-based creation system for multimedia content
  3270. > would make sense, but that's an extension of the word processor metaphor.
  3271. >     The whole multi-source document concept is useful, but only for things
  3272. > that naturally have a document metaphor.
  3273.  
  3274. This also applies to client/server applications where the data being
  3275. retrieved from a database determines what the user sees on the screen.
  3276.  
  3277. > jdelkins@lilly.com (Joel D. Elkins) wrote:
  3278. > Aside...
  3279. >   Q: What is the difference between a "form" and a "document"?
  3280. >   A: A form only has 1 page, but document's have a lot!  :-)
  3281.  
  3282. There is a bigger difference between forms and documents: forms have a
  3283. rigid structure whereas documents do not. You can change the structure of
  3284. a document but *not* of a form (I wish I could change the structure of my
  3285. 1040 every April 15--sigh).
  3286.  
  3287. You could have a database query part that could be embedded within an
  3288. OpenDoc document. Editing the query part would mean change the query
  3289. statement defined within it. What you would see in the document would be
  3290. the results of the query. As for a database browser as an OpenDoc part, I
  3291. don't believe that this would yield anything meaningful (akin to putting
  3292. the finder in a OpenDoc document?). If anything, a database browser (a
  3293. database application) would end up being an OpenDoc container application.
  3294.  
  3295. When I use the term "database browser" I mean an application that could
  3296. visit the various data within a database, allow the user to select
  3297. something and, optionally, modify it. The user would also have the ability
  3298. to delete old information and to insert new information.
  3299.  
  3300. I'm not trying to imply that OpenDoc isn't useful to client/server
  3301. applications, I just do not see how the document-centered approach would
  3302. be practical. Other aspect of OpenDoc, like distributive objects, would be
  3303. very useful however.
  3304.  
  3305. -- Edward Cessna
  3306. -- Walt Disney Pictures and Television
  3307.  
  3308. +++++++++++++++++++++++++++
  3309.  
  3310. >From h+@nada.kth.se (Jon W{tte)
  3311. Date: Tue, 30 Aug 1994 22:29:13 +0200
  3312. Organization: Royal Institute of Something or other
  3313.  
  3314. In article <jdelkins-3008940939270001@m25567.d51.lilly.com>,
  3315. jdelkins@lilly.com (Joel D. Elkins) wrote:
  3316.  
  3317. >And what about client-server based apps, much in use by corporations today,
  3318. >for which the "document" paradigm really doesn't apply. Most of
  3319. >the c/s apps I've seen are more "forms" based. How will OpenDoc improve
  3320. >such apps? Unless it does, I don't see widespread acceptance by corporations
  3321. >for their in-house development efforts.
  3322.  
  3323. This is IDEAL for OpenDoc; you'd make forms as stationery of 
  3324. linked parts with AppleScript as the glue in the middle. 
  3325. Because you then can make a form of ANYTHING, you gain instant 
  3326. multimedia forms!
  3327.  
  3328. Cheers,
  3329.  
  3330.                     / h+
  3331.  
  3332.  
  3333. --
  3334.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  3335.  
  3336.   Reality exists only in your imagination.
  3337.  
  3338.  
  3339. +++++++++++++++++++++++++++
  3340.  
  3341. >From E.J. Draper <draper@utmdacc.mda.uth.tmc.edu>
  3342. Date: 30 Aug 1994 20:51:18 GMT
  3343. Organization: U.T.M.D. Anderson Cancer Center
  3344.  
  3345.  
  3346. >That's also a collection of an editor part, a news collection 
  3347. >part, ...
  3348.  
  3349. It seems that a great deal of the hype that surrounded AppleEvents before
  3350. the release of System 7 is being recycled in OpenDoc propaganda. 
  3351. Everyone heard that they were going to be able to use one spell check
  3352. program for all their needs.  They'd also use one graphics program, one
  3353. communications program, etc., etc..  Of course, all these programs were
  3354. going to communicate together to enrich the Macintosh experience and open
  3355. new profit channels for Apple and their developers.  So now we've got
  3356. shared libraries and the AppleEvent performance bottleneck is diminished.
  3357.  I'm still skeptical ...
  3358.  
  3359. >Your news reader comes with the SimpleText text edittig part. 
  3360. >Unfortunately, this part does not handle parts larger than 32k, 
  3361. >so to decode alt.binaries.pictures.erotica.jello, you instead 
  3362. >use the Alpha text editting part which handles larger 
  3363. >documents, and write a small script that scans the news 
  3364. >collection part for multi-part postings, uses Alpha to 
  3365. >concatenate them, uses the StuffIt mangling part to get an 
  3366. >image which you display in the JPEGView picture display part.
  3367.  
  3368. This solution would be inelegant, overly complex, neophyte hostile, and
  3369. slow.  What's so compelling about it?  
  3370.  
  3371.  
  3372. BTW- I did read the OpenDoc white paper.
  3373.  
  3374.  
  3375.       |E|J-  ED DRAPER
  3376.  rEpar|D|<-  Radiologic/Pathologic Institute
  3377.              The University of Texas M.D. Anderson Cancer Center
  3378.              draper@utmdacc.mda.uth.tmc.edu
  3379.  
  3380. +++++++++++++++++++++++++++
  3381.  
  3382. >From edcessna@netcom.com (Edward Cessna)
  3383. Date: Tue, 30 Aug 1994 14:21:56 -0700
  3384. Organization: Disney
  3385.  
  3386. In article <susser-3008941029470001@susser.apple.com>, susser@apple.com
  3387. (Joshua Susser) wrote:
  3388.  
  3389. > Actually, OpenDoc has a great story for in-house MIS types.  They have two
  3390. > big desires - being able to use COTS (Commercial Off The Shelf) Software,
  3391. > and getting a vertical solution for their special needs.  Notice these two
  3392. > desires are in direct conflict.  But with component technology like
  3393. > OpenDoc, you can buy a set of COTS part editors and maybe only have to
  3394. > write one or two special purpose ones in house.  Then create standard
  3395. > stationery using these chosen editors, write some scripts to integrate the
  3396. > parts functionality, and presto, it's an instant vertical application,
  3397. > custom made for your department with mostly COTS components.
  3398.  
  3399. Interesting concept. So, when the user double-clicks on the stationery, a
  3400. document will be created and they will be able to do their work. Question:
  3401. is the structure of the document fixed? In other words, could the user
  3402. accidentally delete or change one or more of the part editors? If the
  3403. answer is yes, then this is a totally wash-out for our in-house users! We
  3404. would spend more time helping the users and they would get annoyed at
  3405. being able to "destroy" the app.
  3406.  
  3407. > As for client-server, OpenDoc supports the concept of what we've been
  3408. > calling an "embedded client".  Create a part editor that can operate as a
  3409. > client for a remote server.
  3410.  
  3411. This would be great for our in-house developers but not our users!
  3412.  
  3413. > A good rule of thumb for what could and should be written as a part editor is:
  3414. > "If it has a user interface, it should be a part."
  3415.  
  3416. I wish it was so...
  3417.  
  3418. > Well, my compile is done, so back to work...
  3419.  
  3420. So quickly? I think I got another 10 minutes to go on my link--sigh.
  3421.  
  3422. -- Edward Cessna
  3423. -- Walt Disney Pictures and Television
  3424.  
  3425. +++++++++++++++++++++++++++
  3426.  
  3427. >From rmah@panix.com (Robert Mah)
  3428. Date: Tue, 30 Aug 1994 17:39:12 -0500
  3429. Organization: One Step Beyond
  3430.  
  3431. edcessna@netcom.com (Edward Cessna) wrote:
  3432.  
  3433. ) There is a bigger difference between forms and documents: forms have a
  3434. ) rigid structure whereas documents do not. You can change the structure of
  3435. ) a document but *not* of a form (I wish I could change the structure of my
  3436. ) 1040 every April 15--sigh).
  3437. ) You could have a database query part that could be embedded within an
  3438. ) OpenDoc document. Editing the query part would mean change the query
  3439. ) ...
  3440.  
  3441. I think you're putting too much emphasis on the term "document" here.
  3442. Nothing in OpenDoc says that the user _must_ be able to manipulate the
  3443. layout of the individual parts in a document/form.
  3444.  
  3445. That is dependent upon a piece of software called something like the 
  3446. "framework" or "layout" app.  You could easily, create a "forms" based 
  3447. part layout application that prevented the user from modifing the
  3448. underlying part layout/structure.
  3449.  
  3450. Cheers,
  3451. Rob
  3452. _____________________________________________________________________
  3453. Robert S. Mah           Software Development          +1.212.947.6507
  3454. One Step Beyond        and Network Consulting          rmah@panix.com
  3455.  
  3456. +++++++++++++++++++++++++++
  3457.  
  3458. >From afcjlloyd@aol.com (AFC JLloyd)
  3459. Date: 30 Aug 1994 17:40:02 -0400
  3460. Organization: America Online, Inc. (1-800-827-6364)
  3461.  
  3462. In article <33vusc$n5d@oac4.hsc.uth.tmc.edu>, E.J. Draper
  3463. <draper@utmdacc.mda.uth.tmc.edu> writes:
  3464.  
  3465. >>Actually, OpenDoc has a great story for in-house MIS types. 
  3466. >
  3467. >Wrong. Users who *do not* build *DOCUMENTS* will be annoyed at having to
  3468. >artificially create documents and incorporate parts just to get something
  3469. >done. The result of every human-machine interaction is *not* a document. 
  3470. >OpenDoc is an interesting and useful addition to the concept of building
  3471. >documents, but it's only interesting and useful in those terms.  
  3472.  
  3473. Perhaps the term "document" is misleading you.  If you grok
  3474. object-oriented programming, substitute the concept "object" for a while. 
  3475. In its most basic definition, an "object" is something that has state,
  3476. behavior, and identity (see Booch, Object Oriented Design).  A document,
  3477. while on disk, is simply state and identity.  When the document is opened,
  3478. OpenDoc dynamically binds the state to a part editor, which provides the
  3479. behavior.  A stationery document, by the way, is like a class -- a
  3480. template for instantiating objects with default state.
  3481.  
  3482. If you think in these more generic terms, I expect many of your objections
  3483. will disappear.  In all human-machine interaction, the machine is
  3484. displaying some visual representation for some state.  If you're concerned
  3485. that OpenDoc won't work for things like databases because the database
  3486. records can't be placed in Bento containers, then you just need to
  3487. consider that the state stored in the Bento containers might be simply a
  3488. "pointer" (or query, etc.) to where the data is actually stored.  This
  3489. results in "dynamically updated" objects -- the query doesn't change by
  3490. the answer does.  Document's like this will need to have a piece of state
  3491. that says how often the query should be repeated in order to keep the
  3492. displayed data up to date.
  3493.  
  3494. >OLE has been around for quite some time and what has the industry
  3495. >learned?  How many people are using OLE in mission critical applications
  3496. >every day?  How many people are out there screaming for OLE versions of
  3497. >Doom and Netware Client tools?
  3498.  
  3499. You're right.  No one is screaming for OLE or OpenDoc tools.  This doesn't
  3500. mean users won't very much appreciate (and ultimately demand) these kinds
  3501. of tools, once they are done right.  As I recall, most DOS users weren't
  3502. screaming for GUI's until well after Microsoft did their third iteration
  3503. of attempting to copy the Macintosh.  Users don't usually scream for a
  3504. solution, they just grumble about problems.  However, once they see a good
  3505. solution, they will generally scream if they aren't allowed to use the
  3506. solution.  This is even true of DOS users, they're just a bit slow ;-).
  3507.   
  3508. >
  3509. >>A good rule of thumb for what could and should be written as a part
  3510. >editor is:
  3511. >>"If it has a user interface, it should be a part."
  3512. >
  3513. >I vehemently disagree.
  3514.  
  3515. Not everything that has a user interface *should* be made into a part, but
  3516. just about anything with a UI *could* be made into a part, and doing so
  3517. would provide a lot of flexibility that currently doesn't exist.  As in
  3518. all engineering endeavors, one should do a costs/benefits analysis first.
  3519.  
  3520. Jim Lloyd
  3521. afcjlloyd@aol.com -or- Jim_Lloyd@powertalk.apple.com
  3522.  
  3523.  
  3524.  
  3525. +++++++++++++++++++++++++++
  3526.  
  3527. >From afcjlloyd@aol.com (AFC JLloyd)
  3528. Date: 30 Aug 1994 20:53:02 -0400
  3529. Organization: America Online, Inc. (1-800-827-6364)
  3530.  
  3531. In article <340646$o0q@oac4.hsc.uth.tmc.edu>, E.J. Draper
  3532. <draper@utmdacc.mda.uth.tmc.edu> writes:
  3533.  
  3534. >>That's also a collection of an editor part, a news collection 
  3535. >>part, ...
  3536. >
  3537. >It seems that a great deal of the hype that surrounded AppleEvents before
  3538. >the release of System 7 is being recycled in OpenDoc propaganda. 
  3539. >Everyone heard that they were going to be able to use one spell check
  3540. >program for all their needs.  They'd also use one graphics program, one
  3541. >communications program, etc., etc..  Of course, all these programs were
  3542. >going to communicate together to enrich the Macintosh experience and open
  3543. >new profit channels for Apple and their developers.  So now we've got
  3544. >shared libraries and the AppleEvent performance bottleneck is diminished.
  3545. > I'm still skeptical ...
  3546.  
  3547. When new technologies are introduced, the "vision" of the "visionaries"
  3548. who create the technology has to be communicated.  Visionaries aren't
  3549. perfect, they will often be wrong in the details, even if they are right
  3550. in the generalities.  So what if we don't yet have a universal spelling
  3551. checker?  It may still happen, and it may not.  AppleEvents has already
  3552. resulted in a lot of value, and is an enabling technology that will only
  3553. become more important over time.  If you feel bitter because of hype that
  3554. hasn't become true, I suggest you develop your ability to read between the
  3555. lines when presented with hype.
  3556.  
  3557. >>Your news reader comes with the SimpleText text edittig part. 
  3558. >>Unfortunately, this part does not handle parts larger than 32k, 
  3559. >>so to decode alt.binaries.pictures.erotica.jello, you instead 
  3560. >>use the Alpha text editting part which handles larger 
  3561. >>documents, and write a small script that scans the news 
  3562. >>collection part for multi-part postings, uses Alpha to 
  3563. >>concatenate them, uses the StuffIt mangling part to get an 
  3564. >>image which you display in the JPEGView picture display part.
  3565. >
  3566. >This solution would be inelegant, overly complex, neophyte hostile, and
  3567. >slow.  What's so compelling about it?  
  3568.  
  3569. I won't comment on something as subjective as "elegance".
  3570.  
  3571. The solution may be "complex", but a lot is happening.  If a specific
  3572. complex problem can be solved by breaking it down into subproblems that
  3573. can each be solved with off-the-shelf parts, then complexity is reduced,
  3574. not increased.
  3575.  
  3576. Requiring a neophyte to do the above from scratch would certainly be
  3577. hostile, but if you provide that neophyte with a previously prepared
  3578. stationery document, it should be no more hostile than a traditional
  3579. solution for this kind of application.
  3580.  
  3581. Finally, why should the above be slow?  Almost all of the computation is
  3582. I/O bound.  The slowest part of the implementation would be the execution
  3583. speed of the scripts, and this would be dominated by the I/O.
  3584.  
  3585. Jim Lloyd
  3586. afcjlloyd@aol.com -or- Jim_Lloyd@powertalk.apple.com
  3587.  
  3588.  
  3589. +++++++++++++++++++++++++++
  3590.  
  3591. >From gurgle@dnai.com (Pete Gontier)
  3592. Date: Tue, 30 Aug 1994 19:13:38 -0800
  3593. Organization: Integer Poet Software
  3594.  
  3595. In article <340646$o0q@oac4.hsc.uth.tmc.edu>, E.J. Draper
  3596. <draper@utmdacc.mda.uth.tmc.edu> wrote:
  3597.  
  3598. > So now we've got shared libraries and the AppleEvent performance
  3599. > bottleneck is diminished. I'm still skeptical ...
  3600.  
  3601. Do you believe it's the case that AppleEvents and AppleScript haven't
  3602. happened according to the hype because of the performance overhead
  3603. associated with AppleEvents? If so, I urge you to figure out exactly how
  3604. to write an OSA-compliant app without attending a class at Apple DU. It
  3605. takes a long time, and that's if you're actually enthusiastic enough about
  3606. the ideas to try hard. It's not that the concepts are overly confusing;
  3607. the documentation simply isn't good. There are other problems (for example
  3608. the lack of compile-time type-checking when building AppleEvents and
  3609. Object Specifiers), but the problem is certainly not performance.
  3610.  
  3611. -- 
  3612.  Pete Gontier // CTO, Integer Poet Software // gurgle@dnai.com
  3613.  
  3614.  "Even during a particularly harsh (Colorado) winter... many of the
  3615.  300 families in the VCTV (movies-on-demand) trial continued to go
  3616.  to video stores." -- eis@murrow.tufts.edu, in Wired 2.09 p62
  3617.  
  3618. +++++++++++++++++++++++++++
  3619.  
  3620. >From Bruce@hoult.actrix.gen.nz (Bruce Hoult)
  3621. Date: Wed, 31 Aug 1994 13:18:42 +1200 (NZST)
  3622. Organization: (none)
  3623.  
  3624. E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> writes:
  3625. > >> > edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  3626. > >> > The Next Generation".  Yes, you can do other stuff, but the touted
  3627. > How many times a day do you use Publish and Subscribe?  
  3628. > The one, and only, application I have for Publish and Subscribe
  3629. > technology is checking the amount of vacation hours I've got coming to me
  3630. > from the departmental spreadsheet.  I use it once a week at the most,
  3631. > probably more like once a month. 
  3632.  
  3633. You might not use publish&subscribe.  I know that, as a programmer, doing
  3634. programmer things, I don't.
  3635.  
  3636. But in the office I support, there is a huge structure of linked spreadsheets,
  3637. graphics documents and word processing documents, all linked together by
  3638. publish&subscribe.
  3639.  
  3640. Eventually, we'd like to have all this managed by a proper database system,
  3641. but for now Publish&subscribe is a huge improvement over the alternatives,
  3642. even if the performance does stink (especially in Excel).
  3643.  
  3644. -- Bruce
  3645.  
  3646. +++++++++++++++++++++++++++
  3647.  
  3648. >From scouten@uiuc.edu (Eric Scouten)
  3649. Date: Tue, 30 Aug 1994 23:49:14 -0500
  3650. Organization: University of Illinois
  3651.  
  3652. In article <edcessna-3008941421560001@153.7.11.4>, edcessna@netcom.com
  3653. (Edward Cessna) wrote:
  3654.  
  3655. > In article <susser-3008941029470001@susser.apple.com>, susser@apple.com
  3656. > (Joshua Susser) wrote:
  3657. > > Actually, OpenDoc has a great story for in-house MIS types.
  3658. > Interesting concept. So, when the user double-clicks on the stationery, a
  3659. > document will be created and they will be able to do their work. Question:
  3660. > is the structure of the document fixed? In other words, could the user
  3661. > accidentally delete or change one or more of the part editors? If the
  3662. > answer is yes, then this is a totally wash-out for our in-house users! We
  3663. > would spend more time helping the users and they would get annoyed at
  3664. > being able to "destroy" the app.
  3665.  
  3666. I believe in the OpenDoc white paper, there's a section on "access
  3667. control" that addresses just this issue. Can't remember exactly how it's
  3668. implemented, but I don't think the system is as naive as you have
  3669. suggested.
  3670.  
  3671. -Eric
  3672.  
  3673. __________________________________________________________________________
  3674. Eric Scouten <scouten@uiuc.edu> * MS Comp Sci, Univ of Illinois
  3675.  
  3676. The Pledge of Allegiance says, "liberty and justice for all."
  3677. Which part of "all" don't you understand?
  3678.    -Rep. Pat Schroeder
  3679.  
  3680. +++++++++++++++++++++++++++
  3681.  
  3682. >From quinlan@kits.sfu.ca (Brian Quinlan)
  3683. Date: 31 Aug 94 06:20:31 GMT
  3684. Organization: Simon Fraser University
  3685.  
  3686. nagle@netcom.com (John Nagle) writes:
  3687.  
  3688. >    The whole development environment shouldn't be a structured document,
  3689. >but source programs might be.  Programs today have parts which are visual
  3690. >and parts which are textual, and those parts need to be better connected.
  3691. >HyperCard already does this.
  3692.  
  3693. I'll have to disagree here. I would love to see my program as a flowchart,
  3694. object relation diagram or dataflow diagram. When I click on a box 
  3695. representing an object, method or function I would get an editor. It could
  3696. click on a line and get an interface editor. 
  3697.  
  3698. >    You could, but why would you want to embed those functions in a
  3699. >structured document?  A document is the wrong metaphor for that collection
  3700. >of functions.  There's no content in which you're embedding those
  3701. >functions.  A multiwindow application is more appropriate.
  3702.  
  3703. Your right, I was grasping at straws here. 
  3704.  
  3705. >    An OpenDoc or OLE-based creation system for multimedia content
  3706. >would make sense, but that's an extension of the word processor metaphor.
  3707.  
  3708. True, it is most easy to see the benifits for a word processor but
  3709. I think it would be helpful in other situations as well. I think that
  3710. for OpenDoc to be usefull you need to be working on some sort of document.
  3711. When programming you do use documents (rez, source, etc.) and you could
  3712. use OpenDoc to integrate these parts into a unified whole.
  3713.  
  3714. >    The whole multi-source document concept is useful, but only for things
  3715. >that naturally have a document metaphor.
  3716.  
  3717. I wish I had read this more carefully before making my last comment!
  3718.  
  3719.  
  3720. +++++++++++++++++++++++++++
  3721.  
  3722. >From hanrek@cts.com (Mark Hanrek)
  3723. Date: 31 Aug 1994 09:23:21 GMT
  3724. Organization: The Information Workshop
  3725.  
  3726. In article <gurgle-3008941913380001@gurgle.dnai.com>, gurgle@dnai.com
  3727. (Pete Gontier) wrote:
  3728.  
  3729. > Do you believe it's the case that AppleEvents and AppleScript haven't
  3730. > happened according to the hype because of the performance overhead
  3731. > associated with AppleEvents? If so, I urge you to figure out exactly how
  3732. > to write an OSA-compliant app without attending a class at Apple DU. It
  3733. > takes a long time, and that's if you're actually enthusiastic enough about
  3734. > the ideas to try hard. It's not that the concepts are overly confusing;
  3735. > the documentation simply isn't good. There are other problems (for example
  3736. > the lack of compile-time type-checking when building AppleEvents and
  3737. > Object Specifiers), but the problem is certainly not performance.
  3738.  
  3739.  
  3740. Pete,
  3741.  
  3742. I agree 100%, as someone who has spent a good deal of time with those subjects.
  3743.  
  3744. There is a "difficulty barrier" in assimilating the AE/AS technologies
  3745. which need not exist.  There could easily be certain materials and/or
  3746. utilities that would help make Apple events and related subjects easy to
  3747. deal with.
  3748.  
  3749. These technologies have now become "fundamental" and "required".
  3750.  
  3751. Hopefully Apple will be able to help turn this molasses back into water.
  3752.  
  3753. I get the feeling that it is just a matter of time until this boil will
  3754. need to be lanced.  
  3755.  
  3756.  
  3757. - ---- Visibility
  3758.  
  3759. I believe "visibility" is one leveraged key to success here.
  3760.  
  3761. If we had doohickies that showed Apple events moving around, allowed us to
  3762. examine them as AEGizmo-like things on screen, and had materials that made
  3763. clear the relationships between AppleScript statements, aete resources,
  3764. and object accessors, kinda thing, there'd likely be a lot more happening.
  3765.  
  3766. Extrapolating from the past, it will probably be some time before there
  3767. any new relief here from Apple. This topic could have been clarified years
  3768. ago.
  3769.  
  3770. If only we [the development community] had the ability to "turn up the
  3771. volume" with these technologies ourselves.
  3772.  
  3773.  
  3774. - ---- Interesting Alternative
  3775.  
  3776. One major event which has yet to happen is for the Macintosh Development
  3777. Community to organize itself, and consequently have for the first time the
  3778. realistic opportunity to "see to some of its own needs", drawn from its
  3779. own resources.
  3780.  
  3781. In many instances, it is not appropriate to expect that Apple is supposed
  3782. to provide a solution, or even to have an accurate perception of its
  3783. development community.  We accidentally think Apple should solve our
  3784. problems or understand us because we are generally powerless to do
  3785. anything beyond what our spare time will allow.
  3786.  
  3787. But the organized spare time of 10 programmers can accomplish some
  3788. significant things.  Or a seed planted by one programmer, and refined 10
  3789. times over.
  3790.  
  3791. Unfortunately, the event of us organizing ourselves won't likely be able
  3792. to occur until true electronic forums are available on the Internet. 
  3793. Forums provide the means of easily developing consensus, electing
  3794. leadership or an agenda, and facilitating collaboration, among other
  3795. essentials.
  3796.  
  3797. There's that "forum" word again.  Interesting, eh?
  3798.  
  3799. :) :) 
  3800.  
  3801. Mark "a-newsgroup-is-not-a-forum" Hanrek
  3802. The Information Workshop
  3803.  
  3804. +++++++++++++++++++++++++++
  3805.  
  3806. >From sw@network-analysis-ltd.co.uk (Sak Wathanasin)
  3807. Date: Wed, 31 Aug 94 09:57:57 BST
  3808. Organization: Network Analysis Ltd
  3809.  
  3810.  
  3811. In article <nagleCvCwzu.EF2@netcom.com> (comp.sys.mac.programmer), nagle@netcom.com (John Nagle) writes:
  3812. > >You could have a basis upon which you had a newsreader, email and ftp parts.
  3813. >     You could, but why would you want to embed those functions in a
  3814. > structured document?  A document is the wrong metaphor for that collection
  3815.  
  3816. I'd have thought it would be the other way round - the doucment would
  3817. be in the mail or news article. Or better, the mail message or news
  3818. article would be the document. That's the way it worked with Xerox
  3819. Viewpoint - when you got something in the mailbox, you opened it and
  3820. there would (sometimes) be a header part and the rest would be the
  3821. document. You didn't have to save an attachment or anything; it could
  3822. be dragged on to the desktop and operated on as a normal WP document.
  3823.  
  3824. Xerox VP had quite a few of the OpenDoc ideas implemented (although OD
  3825. goes much further, of course). Appl-centric and doc-centric objects can
  3826. co-exist quite happily. Or at least I didn't go around clutching my
  3827. head screaming "Oh, my God! Is that an appl or document object?" I just
  3828. double-clicked on it and went about my business...
  3829.  
  3830.  
  3831. Sak Wathanasin
  3832. Network Analysis Limited
  3833. 178 Wainbody Ave South, Coventry CV3 6BX, UK
  3834.  
  3835. Internet: sw@network-analysis-ltd.co.uk 
  3836. uucp:     ...!uknet!nan!sw                       AppleLink: NAN.LTD
  3837. Phone: (+44) 203 419996 Mobile:(+44) 850 587411  Fax: (+44) 203 690690
  3838.  
  3839. +++++++++++++++++++++++++++
  3840.  
  3841. >From h+@nada.kth.se (Jon W{tte)
  3842. Date: Wed, 31 Aug 1994 12:07:57 +0200
  3843. Organization: Royal Institute of Something or other
  3844.  
  3845. In article <edcessna-3008941421560001@153.7.11.4>,
  3846. edcessna@netcom.com (Edward Cessna) wrote:
  3847.  
  3848. >is the structure of the document fixed? In other words, could the user
  3849.  
  3850. Yes; you can lock the frames of parts in OpenDoc compound 
  3851. documents. This is in the white paper.
  3852.  
  3853. Cheers,
  3854.  
  3855.                 / h+
  3856.  
  3857.  
  3858. --
  3859.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  3860.  
  3861.   Reality exists only in your imagination.
  3862.  
  3863.  
  3864. +++++++++++++++++++++++++++
  3865.  
  3866. >From h+@nada.kth.se (Jon W{tte)
  3867. Date: Wed, 31 Aug 1994 12:07:59 +0200
  3868. Organization: Royal Institute of Something or other
  3869.  
  3870. In article <340646$o0q@oac4.hsc.uth.tmc.edu>,
  3871. E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> wrote:
  3872.  
  3873. >This solution would be inelegant, overly complex, neophyte hostile, and
  3874. >slow.  What's so compelling about it?  
  3875.  
  3876. The neophyte buys a pre-configured stationery/part editor 
  3877. bundle that behaves as an integrated whole.
  3878.  
  3879. The non-neophyte can go in and change whatever he wants in the 
  3880. bundle to make it fit his needs.
  3881.  
  3882. The information systems people in an organization can use 
  3883. off-the-shelf parts and their own custom glue to create needed 
  3884. applications.
  3885.  
  3886. Cheers,
  3887.  
  3888.                 / h+
  3889.  
  3890.  
  3891. --
  3892.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  3893.  
  3894.   Reality exists only in your imagination.
  3895.  
  3896.  
  3897. +++++++++++++++++++++++++++
  3898.  
  3899. >From philip@cs.wits.ac.za (Philip Machanick)
  3900. Date: 31 Aug 1994 13:05:05 GMT
  3901. Organization: Computer Science Dept, U of Witwatersrand
  3902.  
  3903. In article <33tgfn$r62@oac4.hsc.uth.tmc.edu>, E.J. Draper
  3904. <draper@utmdacc.mda.uth.tmc.edu> wrote:
  3905.  
  3906. > I can see some interesting applications of OpenDoc technology, but I
  3907. > certainly don't feel it's as mind-boggling awesome as the market-droids
  3908. > would have us think.  What's OpenDoc going to do for me?  Does a compiler
  3909. > part make sense?  How about news reader part?  An email part? A PIM part?
  3910.  
  3911. Compiler makes sense - but you are not trying to think of where the
  3912. "document" comes in. Look at something like CodeWarrior or ThinkC. Each
  3913. item in the project file is a part. You can open it to a window, you can
  3914. drag it around in the project. Cut, copy, paste are less obvious - maybe
  3915. there is use for these.
  3916.  
  3917. News reader the same thing. A newsreader consists of a number of documents
  3918. with different behaviours. If you don't use NewsWatcher you may not see
  3919. the possibilities. NewsWatcher has features like extract binhex, fetch ftp
  3920. from reference in article etc. Such things could be added as new
  3921. behaviours in a news document. On the other hand some web viewers allow
  3922. you to retrieve news articles. OpenDoc could make for much more seemless
  3923. integration of all these things. Imagine: a different part handler for
  3924. each kind of URL.
  3925.  
  3926. > A Resorcerer part?  How does OpenDoc improve the way that people work
  3927. > with information?  Does it make the computer more approachable to novice
  3928. > users?  What specific problem is it trying to solve?
  3929.  
  3930. It's trying to solve the problem of the monolith application. All these
  3931. people who are compaining that the Mac doesn't have proper protection etc.
  3932. are right, only they are too late. The application of today is bigger and
  3933. more complex than the operating system of the time when schedulers, paging
  3934. etc. were invented (VM goes back to the 1950s). What is needed now is a
  3935. way of putting together complex behaviour in smaller packages. Look up
  3936. Brad Cox's book on software ICs (I forget the title). OpenDoc is a
  3937. framework for plugging together software ICs - call it a software PCB. Not
  3938. that protection etc. should not be addressed - but _only_ adding
  3939. protection and pre-emption would give us a good 1970s OS without
  3940. addressing the monolithic app problem. With a good OS underneath it
  3941. OpenDoc could turn out to be a dinosaur killer.
  3942.  
  3943. The underlying idea is not new. The Xerox Star was programmed like this
  3944. and Apple has some of the people who were at Parc at the time pushing it
  3945. along.
  3946.  
  3947. > It seems like the whole OpenDoc paradigm starts breaking down after you
  3948. > get past the Graphic+MooV+Text+Spreadsheet model.
  3949.  
  3950. It breaks down when you can't conceive of what you are doing as
  3951. manipulating a document. The same thing was true of understanding why
  3952. windowed interfaces are better than command line interfaces. Some people
  3953. still don't get it :( but some of us are very happy programming in
  3954. windowed environments like CodeWarrior.
  3955. -- 
  3956. Philip Machanick                   philip@cs.wits.ac.za
  3957. Department of Computer Science, University of the Witwatersrand
  3958. 2050 Wits, South Africa        (at University of Cape Town 4 July-7 Nov)
  3959. phone 27(11)716-3309  fax 27(11)339-7965
  3960.  
  3961. +++++++++++++++++++++++++++
  3962.  
  3963. >From philip@cs.wits.ac.za (Philip Machanick)
  3964. Date: 31 Aug 1994 13:14:39 GMT
  3965. Organization: Computer Science Dept, U of Witwatersrand
  3966.  
  3967. In article <nagleCvC1vy.LGI@netcom.com>, nagle@netcom.com (John Nagle) wrote:
  3968. >       I think he has a point.  I can imagine a CAD system based on this
  3969. > approach, where you click on a subassembly to get to the detailed drawings.
  3970. > But that doesn't even fit the OpenDoc model, which is 2D, not 3D.
  3971. > What, besides embed stuff in word processor documents, is one really likely
  3972. > to do with OpenDoc?
  3973.  
  3974. Embed word processing in graphics documents :) In what sense are you
  3975. saying OpenDoc is 2D? It is based on frames which can have an arbitrary
  3976. shape so I suppose there is potentially a problem implementing a part
  3977. picker that is aware of depth. It is possible this could be layered on top
  3978. of the model of passing messages to contained parts. Maybe someone who has
  3979. gone further into detail could answer this.
  3980.  
  3981. >       By the way, how does OpenDoc do version management?
  3982.  
  3983. At some point in the history of a document you can start a new edition,
  3984. and go back to previous editions.
  3985.  
  3986. Since there is supposed to be support for cross-platform collaborative
  3987. editing, there ought to be more sophisticated features, but I have seen
  3988. nothing about this.
  3989.  
  3990. There are a lot of potential problems with OpenDoc but it is a real
  3991. attempt at rethinking the document-application relationship. I would like
  3992. to see how it develops. I'm less sure about all the weird infrastructure
  3993. it's being pinned onto though - a good simple kernel plus an
  3994. object-oriented language with better dynamic binding than C++ would have
  3995. been a better start.
  3996. -- 
  3997. Philip Machanick                   philip@cs.wits.ac.za
  3998. Department of Computer Science, University of the Witwatersrand
  3999. 2050 Wits, South Africa        (at University of Cape Town 4 July-7 Nov)
  4000. phone 27(11)716-3309  fax 27(11)339-7965
  4001.  
  4002. +++++++++++++++++++++++++++
  4003.  
  4004. >From lentz@rossi.astro.nwu.edu (Robert Lentz)
  4005. Date: 31 Aug 1994 14:40:12 GMT
  4006. Organization: Northwestern University, Evanston, Illinois, USA
  4007.  
  4008. In article <340k9e$mdv@search01.news.aol.com>,
  4009. AFC JLloyd <afcjlloyd@aol.com> wrote:
  4010. >...
  4011. >When new technologies are introduced, the "vision" of the "visionaries"
  4012. >who create the technology has to be communicated.  Visionaries aren't
  4013. >perfect, they will often be wrong in the details, even if they are right
  4014. >in the generalities.  So what if we don't yet have a universal spelling
  4015. >checker?  It may still happen, and it may not.  AppleEvents has already
  4016. >resulted in a lot of value, and is an enabling technology that will only
  4017. >become more important over time.  If you feel bitter because of hype that
  4018. >hasn't become true, I suggest you develop your ability to read between the
  4019. >lines when presented with hype.
  4020. >...
  4021.  
  4022. And complain to those developers that have not seen the light. Would it not
  4023. be nice to be able to ask Word to spell check a document for you? 
  4024.  
  4025. -Robert
  4026. -- 
  4027. lentz@rossi.astro.nwu.edu            http://www.astro.nwu.edu/lentz/plan.html
  4028.     "You have to push as hard as the age that pushes against you."
  4029.                     -Flannery O'Connor
  4030.  
  4031.  
  4032. +++++++++++++++++++++++++++
  4033.  
  4034. >From Jaeger@fquest.com (Brian Stern)
  4035. Date: 31 Aug 1994 15:24:32 GMT
  4036. Organization: The University of Texas at Austin, Austin, Texas
  4037.  
  4038. In article <hanrek-3108940225330001@auke.cts.com>, hanrek@cts.com (Mark
  4039. Hanrek) wrote:
  4040.  
  4041.  
  4042. < ------ Interesting Alternative
  4043. < One major event which has yet to happen is for the Macintosh Development
  4044. < Community to organize itself, and consequently have for the first time the
  4045. < realistic opportunity to "see to some of its own needs", drawn from its
  4046. < own resources.
  4047.  
  4048. You're right, we're not organized.
  4049.  
  4050. < In many instances, it is not appropriate to expect that Apple is supposed
  4051. < to provide a solution, or even to have an accurate perception of its
  4052. < development community.  We accidentally think Apple should solve our
  4053. < problems or understand us because we are generally powerless to do
  4054. < anything beyond what our spare time will allow.
  4055.  
  4056. Yes, Apple does what it wants, what it has resources to do, and what it
  4057. *thinks* we want.
  4058.  
  4059. < But the organized spare time of 10 programmers can accomplish some
  4060. < significant things.  Or a seed planted by one programmer, and refined 10
  4061. < times over.
  4062.  
  4063. Absoluteley.
  4064.  
  4065. < Unfortunately, the event of us organizing ourselves won't likely be able
  4066. < to occur until true electronic forums are available on the Internet. 
  4067. < Forums provide the means of easily developing consensus, electing
  4068. < leadership or an agenda, and facilitating collaboration, among other
  4069. < essentials.
  4070. < There's that "forum" word again.  Interesting, eh?
  4071.  
  4072. Here's where you lose me.  What does a forum have that a newsgroup doesn't
  4073. have?  Don't tell me archiving of every message because most of what's
  4074. posted here does not deserve to be saved for posterity.  If you want
  4075. something you have to ask for it.  And in a way that people understand
  4076. what it is that you're asking for.
  4077.  
  4078. I agree with you that the tools available and information available to us
  4079. are often inadequate.  Discussing that in this forum (sorry) is one way of
  4080. letting the tool/information providers know what we want.  If you want
  4081. something from the programming community this also a good place for
  4082. discussion of that.  My question is: What do you want?
  4083.  
  4084. < :) :) 
  4085. < Mark "a-newsgroup-is-not-a-forum" Hanrek
  4086. < The Information Workshop
  4087.  
  4088. -- 
  4089. Brian  Stern  :-{)}
  4090. Jaeger@fquest.com
  4091.  
  4092. +++++++++++++++++++++++++++
  4093.  
  4094. >From 103t_english@west.cscwc.pima.edu
  4095. Date: 31 Aug 94 15:29:30 MST
  4096. Organization: (none)
  4097.  
  4098. In article <Jaeger-3108941026460001@slip-1-36.ots.utexas.edu>, Jaeger@fquest.com (Brian Stern) writes:
  4099. > In article <hanrek-3108940225330001@auke.cts.com>, hanrek@cts.com (Mark
  4100. > Hanrek) wrote:
  4101. > < ------ Interesting Alternative
  4102. > < There's that "forum" word again.  Interesting, eh?
  4103. > < 
  4104.  
  4105. I think that Mark is hinting at a commercial project that he is working on, and
  4106. many of his posts, while they are valid, are simply an attempt to steer folks
  4107. to the conclusion that something remarkably similar to what he is planning on
  4108. marketing, is actually a good idea and that they would buy it.
  4109.  
  4110. I don't know if I am correct or not, but it feels this way to me.
  4111.  
  4112. Personally, I think it a REALLY GOOD marketing ploy if I am correct.
  4113.  
  4114. > Here's where you lose me.  What does a forum have that a newsgroup doesn't
  4115. > have?  Don't tell me archiving of every message because most of what's
  4116. > posted here does not deserve to be saved for posterity.  If you want
  4117. > something you have to ask for it.  And in a way that people understand
  4118. > what it is that you're asking for.
  4119. > I agree with you that the tools available and information available to us
  4120. > are often inadequate.  Discussing that in this forum (sorry) is one way of
  4121. > letting the tool/information providers know what we want.  If you want
  4122. > something from the programming community this also a good place for
  4123. > discussion of that.  My question is: What do you want?
  4124. > < :) :) 
  4125. > < 
  4126. > < Mark "a-newsgroup-is-not-a-forum" Hanrek
  4127. > < The Information Workshop
  4128. > -- 
  4129. > Brian  Stern  :-{)}
  4130. > Jaeger@fquest.com
  4131.  
  4132.  
  4133.  
  4134. Lawson
  4135.  
  4136. +++++++++++++++++++++++++++
  4137.  
  4138. >From nagle@netcom.com (John Nagle)
  4139. Date: Thu, 1 Sep 1994 05:14:15 GMT
  4140. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  4141.  
  4142. philip@cs.wits.ac.za (Philip Machanick) writes:
  4143. >It's trying to solve the problem of the monolith application. All these
  4144. >people who are compaining that the Mac doesn't have proper protection etc.
  4145. >are right, only they are too late. The application of today is bigger and
  4146. >more complex than the operating system of the time when schedulers, paging
  4147. >etc. were invented (VM goes back to the 1950s). What is needed now is a
  4148. >way of putting together complex behaviour in smaller packages. Look up
  4149. >Brad Cox's book on software ICs (I forget the title). OpenDoc is a
  4150. >framework for plugging together software ICs - call it a software PCB. Not
  4151. >that protection etc. should not be addressed - but _only_ adding
  4152. >protection and pre-emption would give us a good 1970s OS without
  4153. >addressing the monolithic app problem. With a good OS underneath it
  4154. >OpenDoc could turn out to be a dinosaur killer.
  4155.  
  4156.       PenPoint had the right idea on this.  It's worth looking at how
  4157. PenPoint worked internally.  Forget about the pen stuff (PenPoint was the
  4158. OS for the now-defunct EO, which failed mostly because a $4000 PDA was
  4159. too expensive); the document model in PenPoint looked good.  Like
  4160. OpenDoc, a document appeared as a number of areas on screen, with each
  4161. area maintained by a different application.  Unlike OpenDoc, each
  4162. application ran in a separate address space with full protection.
  4163. The notion of "application launch" was eliminated; as you scrolled through
  4164. a document, processes were created and terminated as required.
  4165.  
  4166.       PenPoint had no installed base with which they had to be compatible,
  4167. so they could use a much simpler architecture.  All PenPoint apps are
  4168. derived classes from base classes of the OS.  This makes apps much
  4169. smaller and simpler, and enforces standardization.  But it's not an
  4170. architecture you can retrofit.  
  4171.  
  4172.       The price we pay for backwards compatibility is seen in the
  4173. complexity of OLE and OpenDoc.
  4174.  
  4175.                     John Nagle
  4176.  
  4177. +++++++++++++++++++++++++++
  4178.  
  4179. >From h+@nada.kth.se (Jon W{tte)
  4180. Date: Thu, 01 Sep 1994 08:56:19 +0200
  4181. Organization: Royal Institute of Something or other
  4182.  
  4183. In article <3424oc$9ba@news.acns.nwu.edu>,
  4184. lentz@rossi.astro.nwu.edu (Robert Lentz) wrote:
  4185.  
  4186. >And complain to those developers that have not seen the light. Would it not
  4187. >be nice to be able to ask Word to spell check a document for you? 
  4188.  
  4189. No, because Word uses Houghton-Mifflin spell checking, which 
  4190. you can license yourself. Don't. Their Mac code would compile 
  4191. on a 1984 Mac, and that's it. It uses FSOpen(). It uses signed 
  4192. chars interchangeably with unsigned chars. Etc.
  4193.  
  4194. Their English dictionary is also nothing good unless you buy 
  4195. all the extra libraries.
  4196.  
  4197. Cheers,
  4198.  
  4199.                     / h+
  4200.  
  4201.  
  4202. --
  4203.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  4204.  
  4205.   Reality exists only in your imagination.
  4206.  
  4207.  
  4208. +++++++++++++++++++++++++++
  4209.  
  4210. >From philip@cs.uct.ac.za (Philip Machanick)
  4211. Date: 1 Sep 1994 10:08:40 +0200
  4212. Organization: Computer Science Department, University of Cape Town
  4213.  
  4214. Just curious.
  4215.  
  4216. I wonder how many of the people saying OpenDoc is no good - AAARGH NO!
  4217. IT'S CONFIGURABLE - THE USERS WILL BREAK IT - are the same ones who
  4218. used to run down the Mac because it isn't configurable like X.
  4219.  
  4220. I must say though I can have some empathy with this fear having
  4221. wasted large chunks of time trying to make X usable every time I
  4222. move to a new place.
  4223. --
  4224. Philip Machanick                      philip@cs.wits.ac.za
  4225. Computer Science Department, University of he Witwatesrand
  4226. 2050 Wits, South Africa 27(11)716-3309 fax 339-7965
  4227. (at University of Cape Town until November: 27(21)650-4058)
  4228.  
  4229. +++++++++++++++++++++++++++
  4230.  
  4231. >From h+@nada.kth.se (Jon W{tte)
  4232. Date: Thu, 01 Sep 1994 14:55:18 +0200
  4233. Organization: Royal Institute of Something or other
  4234.  
  4235. In article <nagleCvFqJs.A2x@netcom.com>,
  4236. nagle@netcom.com (John Nagle) wrote:
  4237.  
  4238. >      The price we pay for backwards compatibility is seen in the
  4239. >complexity of OLE and OpenDoc.
  4240.  
  4241. Guess what? In OpenDoc, all applications are subclasses of a 
  4242. system class, ODPart to be exact, and all storage is subclasses 
  4243. of ODStorageUnit (or whatever) etc. OpenDoc also requires total 
  4244. rewrite of everything; it's NOT designed to be backwards 
  4245. compatible (which OLE is, to some degree)
  4246.  
  4247. However, you're confusing the issues of an application runtime 
  4248. architecture with the issues of various OS support. There's no 
  4249. reason why OpenDoc parts cannot live in separate protected 
  4250. address spaces.
  4251.  
  4252. Cheers,
  4253.  
  4254.                 / h+
  4255.  
  4256.  
  4257. --
  4258.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  4259.  
  4260.   Reality exists only in your imagination.
  4261.  
  4262.  
  4263. +++++++++++++++++++++++++++
  4264.  
  4265. >From nagle@netcom.com (John Nagle)
  4266. Date: Thu, 1 Sep 1994 16:26:12 GMT
  4267. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  4268.  
  4269. >In article <hanrek-3108940225330001@auke.cts.com>, hanrek@cts.com (Mark
  4270. >Hanrek) wrote:
  4271. >< In many instances, it is not appropriate to expect that Apple is supposed
  4272. >< to provide a solution, or even to have an accurate perception of its
  4273. >< development community.  We accidentally think Apple should solve our
  4274. >< problems or understand us because we are generally powerless to do
  4275. >< anything beyond what our spare time will allow.
  4276.  
  4277. >Yes, Apple does what it wants, what it has resources to do, and what it
  4278. >*thinks* we want.
  4279.  
  4280.        Apple needs to realize that 1) the development tools for the
  4281. Macintosh are now inferior to those for Windows, and 2) this is Apple's
  4282. problem, whether Apple likes it or not.
  4283.  
  4284.                     John Nagle
  4285.  
  4286. +++++++++++++++++++++++++++
  4287.  
  4288. >From jonpugh@netcom.com (Jon Pugh)
  4289. Date: Thu, 1 Sep 1994 21:50:31 GMT
  4290. Organization: Will hack for food
  4291.  
  4292. John Nagle (nagle@netcom.com) wrote:
  4293.  
  4294. >        Apple needs to realize that 1) the development tools for the
  4295. > Macintosh are now inferior to those for Windows, and 2) this is Apple's
  4296. > problem, whether Apple likes it or not.
  4297.  
  4298. This is off the thread, but I just wanted to refute this statement.  We 
  4299. have just gone from all Mac development to doing some Windows development
  4300. too.  We had heard this line for some time but it does not jibe with our
  4301. experience.  We have yet to find a single tool that operates as nicely as
  4302. THINK, CW _or_ MPW.  Sure, some are faster, some have cool features, but
  4303. nothing works as well or as integrated.  Just trying to write some scripts
  4304. to mimic some of our MPW Projector scripts was a nightmare!
  4305.  
  4306. All in all, we should start a different thread and argue about this some
  4307. more.  Macintosh development tools are damn nice compared to the mess on
  4308. Windows.
  4309.  
  4310. Jon
  4311.  
  4312.  
  4313. +++++++++++++++++++++++++++
  4314.  
  4315. >From bobd@zaphod.UUCP (Bob Dalgleish)
  4316. Date: 2 Sep 94 16:12:19 GMT
  4317. Organization: Develcon Electronics Ltd., Saskatoon, SK, Canada
  4318.  
  4319. In article <susser-3008941029470001@susser.apple.com> susser@apple.com (Joshua Susser) writes:
  4320. >nagle@netcom.com (John Nagle) wrote:
  4321. >> E.J. Draper <draper@utmdacc.mda.uth.tmc.edu> writes:
  4322. >> >It seems like the whole OpenDoc paradigm starts breaking down after you
  4323. >> >get past the Graphic+MooV+Text+Spreadsheet model.
  4324. >> 
  4325. >>       I think he has a point.  I can imagine a CAD system based on this
  4326. >> approach, where you click on a subassembly to get to the detailed drawings.
  4327. >> But that doesn't even fit the OpenDoc model, which is 2D, not 3D.
  4328. >> What, besides embed stuff in word processor documents, is one really likely
  4329. >> to do with OpenDoc?
  4330. >
  4331. >OpenDoc windows and layout objects are 2D, because that's the
  4332. >dimensionality of the imaging devices available today (for the most
  4333. >part).  But we did leave enough room in the API to support 3D parts.  It
  4334. >should in fact be possible to embed a text part onto the surface of a 3D
  4335. >sphere part.
  4336. >
  4337. >But even without 3D, OpenDoc is suitable for much more than just a
  4338. >"Graphic+MooV+Text+Spreadsheet" kind of document.  See below.
  4339.  
  4340. I started to have a vision.  Having followed this thread for awhile, and
  4341. read through the WWDC documentation, installed BBEdit 3.0, Symantec C 7,
  4342. and MW CW, purchased and installed a *very expensive* CASE system, and
  4343. still being faced with elementary problems of envisioning software, I
  4344. started to see a trend.
  4345.  
  4346. Software project forms a document (in SC7, this is a project file), to
  4347. which are attached source files, object files, library files, resource
  4348. files, resource source files, and pretty much anything you want.  The
  4349. TPM uses the file suffix to assign a "part editor" to each type of file,
  4350. and "does the right thing" at the right time.  How does this differ from
  4351. an OpenDoc document with part editors for distinct parts, and a document
  4352. "application" co-ordinating the make process?
  4353.  
  4354. Even though we think of source code as a text file, we, in fact, treat
  4355. it as a specialized database of relationships.  Witness PopUpFuncs,
  4356. CMaster, ObjectMaster, and other extensions to the basic set of text
  4357. manipulation tools.  Someone else has suggested "Could I not see my
  4358. source code as a flow-chart, data-flow chart, decision table, coverage
  4359. checklist?"
  4360.  
  4361. The model we already use for software development is that of an OpenDoc
  4362. architecture with only three providers and some hangers-on.  A true
  4363. OpenDoc document for a development project would have resource editors,
  4364. text editors, compilers, graphers, analyzers, etc., as part editors that
  4365. could be applied at any time for any purpose that the devious minds of
  4366. developers can come up with.
  4367. >>       By the way, how does OpenDoc do version management?
  4368. >
  4369. >OpenDoc documents provide a facility for creating a named revision of your
  4370. >document called a "draft".  Each draft is basically a checkpoint of the
  4371. >state of the document.  You can create a new draft at any time, have as
  4372. >many as you like, open old drafts to compare to newer, etc.  There's
  4373. >lots more about drafts, but you can read the documentation for that.
  4374.  
  4375. This is much more sophisticated than Projector or SourceServer or RCS.
  4376. As long as there was a way to get drafts of parts, most programmers
  4377. would be happy to work in such a world.
  4378.  
  4379. Any programmer will tell you that comments don't cut it as for
  4380. keeping sufficient information to maintain software, but it is the
  4381. only tool available.   New part editors, and ways to co-ordinate them
  4382. may be just the way to do it.
  4383.  
  4384. Okay, who's up for writing an OpenDoc document to replace Think C and
  4385. CodeWarrior?
  4386. -- 
  4387. -- * * * CFV: net.short.signatures * * *--
  4388. Bob Dalgleish     zaphod!bobd@tribune.usask.ca     CompuServe: 70521,2011
  4389.  
  4390. +++++++++++++++++++++++++++
  4391.  
  4392. >From will@cs.su.oz.au (William Uther)
  4393. Date: 3 Sep 1994 10:36:00 +1000
  4394. Organization: Basser Dept of Computer Sciece, Uni of Sydney, Australia
  4395.  
  4396. In article <5865@zaphod.uucp>, Bob Dalgleish <bobd@zaphod.UUCP> wrote:
  4397. >In article <susser-3008941029470001@susser.apple.com> susser@apple.com (Joshua Susser) writes:
  4398.  
  4399. [snip]
  4400.  
  4401. >>But even without 3D, OpenDoc is suitable for much more than just a
  4402. >>"Graphic+MooV+Text+Spreadsheet" kind of document.  See below.
  4403. >
  4404. >I started to have a vision.  Having followed this thread for awhile, and
  4405. >read through the WWDC documentation, installed BBEdit 3.0, Symantec C 7,
  4406. >and MW CW, purchased and installed a *very expensive* CASE system, and
  4407. >still being faced with elementary problems of envisioning software, I
  4408. >started to see a trend.
  4409.  
  4410. [snip]
  4411.  
  4412. >Even though we think of source code as a text file, we, in fact, treat
  4413. >it as a specialized database of relationships.  Witness PopUpFuncs,
  4414. >CMaster, ObjectMaster, and other extensions to the basic set of text
  4415. >manipulation tools.  Someone else has suggested "Could I not see my
  4416. >source code as a flow-chart, data-flow chart, decision table, coverage
  4417. >checklist?"
  4418.  
  4419. [snip]
  4420.  
  4421. >Okay, who's up for writing an OpenDoc document to replace Think C and
  4422. >CodeWarrior?
  4423.  
  4424. This sounds very like the Gwydion project CMU are working on (with Apple?).
  4425.  
  4426. The WWW page URL is:
  4427. http://legend.gwydion.cs.cmu.edu:8001/gwydion/
  4428.  
  4429. They are working on a development environment for Dylan (aka BHS) which
  4430. includes being able view your code as hypertext.  They mention version control
  4431. where you can lock functional parts on the program - e.g. if you were changing
  4432. the interface to a function you could lock "this function and all functions
  4433. that reference it".  Anyway, have a look the WWW page for more info.
  4434.  
  4435. \x/ill      :-}
  4436.  
  4437.  
  4438. +++++++++++++++++++++++++++
  4439.  
  4440. >From deanp@zikzak.apana.org.au (Dean Perry)
  4441. Date: 8 Sep 1994 04:45:11 GMT
  4442. Organization: Zikzak public access UNIX, Melbourne Australia
  4443.  
  4444. eric larson (eric.larson@f620.n2605.z1.fidonet.org) wrote:
  4445. :  >      A more fundamental problem is that all this machinery exists mostly
  4446. :  > so you can embed different documents in your word processor and still
  4447. :  > edit them with appropriate tools.  It's sort of "Publish and Subscribe,
  4448. :  > The Next Generation".  Yes, you can do other stuff, but the touted
  4449. :  > advantage is mostly for integrated documents.  It's all focused on
  4450. :  > what documents look like, not what they mean.  Is that really worth all
  4451. :  > this complexity?
  4452.  
  4453. : One concern I have about this technology is what it is going to do to document
  4454. : portability.
  4455.  
  4456. Like what do you do when you don't have all the parts to view 
  4457. something... I guess this will come about along the lines of what happens 
  4458. if you have a QuickTime clip in a document on a machine without it 
  4459. installed - you get a dead placeholder that may or may not represent the 
  4460. content.  The whole idea of *distributed* parts freaks me a little - what 
  4461. do you do when your document relies on net connections to multiple remote 
  4462. servers and the net goes away?
  4463.  
  4464. dean
  4465. --
  4466.         Zikzak public access UNIX, Melbourne, Australia.
  4467.  
  4468. +++++++++++++++++++++++++++
  4469.  
  4470. >From quinn@cs.uwa.edu.au (Quinn "The Eskimo!")
  4471. Date: Thu, 08 Sep 1994 17:50:17 +0800
  4472. Organization: Department of Computer Science, The University of Western Australia
  4473.  
  4474. In article <nagleCvB8zv.M3K@netcom.com>, nagle@netcom.com (John Nagle) wrote:
  4475.  
  4476. >      Or long-term document integrity.  Will you still be able to read
  4477. >your document a few years downstream, after all the applications have
  4478. >changed?  And if you can't, which vendor do you call for help?
  4479.  
  4480. I don't think this will be a problem.  Unless there are nasty bugs in the
  4481. part handlers, OpenDoc should still be able to open the document, even if
  4482. you can't edit (or even view) it.  You'll be able to rip it apart and try
  4483. to find out which part handler is having the bad day.
  4484.  
  4485. Alternatively it's likely that sooner or later, someone will build
  4486. 'ResEdit for Bento', an application that lets you tear OpenDoc documents
  4487. apart at a low level.  This means you'll be able to break any document up
  4488. into its component parts and hence edit them that way.
  4489.  
  4490. Let's face it, you face exactly the same problem today with non-compound
  4491. documents.  If WidgetWorks Inc goes down the tubes and, 3 years later,
  4492. WidgetWorks fails to run under Gerschwin, well you're screwed, aren't you?
  4493.  
  4494. Share and Enjoy.
  4495. -- 
  4496. Quinn "The Eskimo!"        "Scout in a can. Simple, cheap, easy
  4497.                             to use and it's expendable!"
  4498.  
  4499. +++++++++++++++++++++++++++
  4500.  
  4501. >From gurgle@dnai.com (Pete Gontier)
  4502. Date: Thu, 08 Sep 1994 09:40:32 -0800
  4503. Organization: Integer Poet Software
  4504.  
  4505. In article <34m4t5$k9p@lazar.apana.org.au>, deanp@zikzak.apana.org.au
  4506. (Dean Perry) wrote:
  4507.  
  4508. > : One concern I have about this technology is what it is going to do to
  4509. > : document portability.
  4510. > Like what do you do when you don't have all the parts to view 
  4511. > something... I guess this will come about along the lines of what happens 
  4512. > if you have a QuickTime clip in a document on a machine without it 
  4513. > installed - you get a dead placeholder that may or may not represent the 
  4514. > content.
  4515.  
  4516. Good answer. Gold star. :-) However, this is not a complete solution.
  4517.  
  4518. We all know what happens when an app fails to save font names in its
  4519. documents as opposed to font numbers. The font numbers will work as long
  4520. as (1) the doc stays on one machine, and (2) the user doesn't mess with
  4521. hir Fonts folder. Deprive the document of either one of those conditions,
  4522. though, and the page layout goes straight in the toilet, even if you're
  4523. able to find a similar font and apply it through some kind of global style
  4524. mechanism (because presumably there are too many changes to make
  4525. manually).
  4526.  
  4527. Now imagine what's missing is not just a font but a program. Presumably
  4528. the program is a bit more complex than a font. Don't get me wrong; it
  4529. might be as clean as a QuickTime PICT. But we can't really guess what
  4530. unfortunate portability issues will appear until they do appear, because
  4531. nobody has done this before.
  4532.  
  4533. > The whole idea of *distributed* parts freaks me a little - what 
  4534. > do you do when your document relies on net connections to multiple remote 
  4535. > servers and the net goes away?
  4536.  
  4537. It doesn't strike me that this is any worse than a part editor which is
  4538. missing when the doc is opened. One important difference is that the app
  4539. shell might be able to take a snap shot of the part's screen
  4540. representation before the part editor goes away.
  4541.  
  4542. -- 
  4543.  
  4544.  Pete Gontier // impudent ass // gurgle@dnai.com
  4545.  
  4546.  "The need to be (or appear to be) sophisticated pervades the very
  4547.  atmosphere in which we, the Magazine Reading Class, move."
  4548.                   -- Ellis Weiner, Spy Magazine, 9/94
  4549.  
  4550. +++++++++++++++++++++++++++
  4551.  
  4552. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  4553. Date: Thu, 8 Sep 1994 18:40:11 GMT
  4554. Organization: Apple Computer
  4555.  
  4556. Dean Perry, deanp@zikzak.apana.org.au writes:
  4557. > : One concern I have about this technology is what it is going to do to
  4558. document
  4559. > : portability.
  4560. > Like what do you do when you don't have all the parts to view 
  4561. > something...
  4562.  
  4563. There are three levels of support for this:
  4564. * If you don't have the preferred editor for that part, but have another
  4565. editor that can edit one or more of the content types saved for that part,
  4566. that editor will be used. (Note that an editor can save a part in multiple
  4567. representations, kind of like writing to the Clipboard or drag mgr today.)
  4568. * If that fails, but there is a translator available that knows how to
  4569. translate one of the part's formats into something one of your available
  4570. editors can read, the translator will be used. (On the Mac, this uses the
  4571. translation system from Mac Easy Open. Other platforms will implement it
  4572. differently.)
  4573. * If all else fails, the part will display as a gray box that displays its
  4574. content type(s). Note that the document will still open, and all other parts
  4575. for which an editor could be found will appear.
  4576.  
  4577. Someone else mentioned a "Bento ResEdit" ... someone (not at Apple) has
  4578. written a tool like that. I'm not sure whether they're going to finish the
  4579. implementation or distribute it more widely. It'd be quite useful.
  4580.  
  4581. --Jens Alfke                           jens_alfke@powertalk.apple.com
  4582.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  4583.  
  4584. +++++++++++++++++++++++++++
  4585.  
  4586. >From h+@nada.kth.se (Jon W{tte)
  4587. Date: Fri, 09 Sep 1994 10:07:24 +0200
  4588. Organization: Royal Institute of Something or other
  4589.  
  4590. In article <34m4t5$k9p@lazar.apana.org.au>,
  4591. deanp@zikzak.apana.org.au (Dean Perry) wrote:
  4592.  
  4593. >Like what do you do when you don't have all the parts to view 
  4594. >something...
  4595.  
  4596. Part Viewers are encouraged to be free, while the editors would 
  4597. cost money.
  4598.  
  4599. Also, a Part Editor is encouraged to store its info in one or 
  4600. more standard formats (i e PICT) as well as its own format, so 
  4601. you can use the "SimpleText" part to view but not edit it.
  4602.  
  4603. >content.  The whole idea of *distributed* parts freaks me a little - what 
  4604. >do you do when your document relies on net connections to multiple remote 
  4605. >servers and the net goes away?
  4606.  
  4607. What do you do when the power goes out? Oh, it doesn't go out 
  4608. often, but it happens, right? Networks will have about the same 
  4609. reliability. (And aside from having an UPS, I now am looking 
  4610. for a V.24 adapter for my digital cellular phone :-)
  4611.  
  4612. Cheers,
  4613.  
  4614.                 / h+
  4615.  
  4616.  
  4617. --
  4618.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  4619.    This is the kind of totally-gross-out-sick stuff you can do with C++ that
  4620.    makes the language kind of neat.
  4621.                                             -- Keith Rollin
  4622.  
  4623.  
  4624. +++++++++++++++++++++++++++
  4625.  
  4626. >From nagle@netcom.com (John Nagle)
  4627. Date: Fri, 9 Sep 1994 16:36:15 GMT
  4628. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  4629.  
  4630. gurgle@dnai.com (Pete Gontier) writes:
  4631. >In article <34m4t5$k9p@lazar.apana.org.au>, deanp@zikzak.apana.org.au
  4632. >(Dean Perry) wrote:
  4633. >> : One concern I have about this technology is what it is going to do to
  4634. >> : document portability.
  4635. >> 
  4636. >> Like what do you do when you don't have all the parts to view 
  4637. >> something... 
  4638. >We all know what happens when an app fails to save font names in its
  4639. >documents as opposed to font numbers. ...
  4640. >Now imagine what's missing is not just a font but a program. ...
  4641.  
  4642.      Yeah.  Supposedly the plan for OpenDoc is that a PICT representation
  4643. of the object is carried with the document, so it can be viewed without
  4644. the appropriate editor.
  4645.  
  4646.      One implication is that even simple documents will be big.  A more
  4647. subtle implication is that document editability may invisibly degrade over
  4648. time as the underlying applications change.  The document may look just
  4649. fine until you try to do something to it.
  4650.  
  4651.                     John Nagle
  4652.  
  4653. +++++++++++++++++++++++++++
  4654.  
  4655. >From jonpugh@netcom.com (Jon Pugh)
  4656. Date: Tue, 13 Sep 1994 22:57:58 GMT
  4657. Organization: Will hack for food
  4658.  
  4659. John Nagle (nagle@netcom.com) wrote:
  4660.  
  4661. >      Yeah.  Supposedly the plan for OpenDoc is that a PICT representation
  4662. > of the object is carried with the document, so it can be viewed without
  4663. > the appropriate editor.
  4664.  
  4665. >      One implication is that even simple documents will be big.  A more
  4666. > subtle implication is that document editability may invisibly degrade over
  4667. > time as the underlying applications change.  The document may look just
  4668. > fine until you try to do something to it.
  4669.  
  4670. These are all concerns relating to OLE also.  In fact, Microsoft advocates
  4671. OLE as a superior technology because it includes a picture along with the
  4672. data whereas OpenDoc does not (according to this MicroSoft OLE comparison
  4673. paper I've been reading).  My favorite part is where they claim that because
  4674. the picture is included, the document may be printed without the editor
  4675. being involved.  They seem to have missed the whole resolution issue.
  4676.  
  4677. Personally, I like the OpenDoc approach better.  It takes a more functional
  4678. attitude, where parts can work the way they want instead of the way the
  4679. container wants, which is the OLE approach.  This paper says that OLE can do
  4680. OpenDoc's in place activation (normal OLE parts are inactive until clicked)
  4681. if the container app wants to.  It doesn't mention that no OLE apps want to. 
  4682. I can see why.  If you activate an Excel graph in Word when it scrolls onto
  4683. the screen, you need to launch Excel.  That's a nontrivial operation.  The
  4684. real question is, will you be able to init all your parts fast enough.  The
  4685. OLE folks don't think so, which is why they advocate static pictures, no 
  4686. implicit activation and printing from the pictures.
  4687.  
  4688. Jon
  4689.  
  4690. +++++++++++++++++++++++++++
  4691.  
  4692. >From philip@cs.wits.ac.za (Philip Machanick)
  4693. Date: 14 Sep 1994 07:07:06 GMT
  4694. Organization: Computer Science Dept, U of Witwatersrand
  4695.  
  4696. In article <jonpughCw3BsM.Bnz@netcom.com>, jonpugh@netcom.com (Jon Pugh) wrote:
  4697.  
  4698. > Personally, I like the OpenDoc approach better.  It takes a more functional
  4699. > attitude, where parts can work the way they want instead of the way the
  4700. > container wants, which is the OLE approach.  This paper says that OLE can do
  4701. > OpenDoc's in place activation (normal OLE parts are inactive until clicked)
  4702. > if the container app wants to.  It doesn't mention that no OLE apps want to. 
  4703. > I can see why.  If you activate an Excel graph in Word when it scrolls onto
  4704. > the screen, you need to launch Excel.  That's a nontrivial operation.  The
  4705. > real question is, will you be able to init all your parts fast enough.  The
  4706. > OLE folks don't think so, which is why they advocate static pictures, no 
  4707. > implicit activation and printing from the pictures.
  4708.  
  4709. The OLE people think this way because they are trying to move dinosaurs
  4710. around with a fly whisk. OpenDoc breaks apps down into more manageable
  4711. chunks - or at least will if programmers use it the way it was intended.
  4712. Launching a spreadsheet part (viewer not editor is the minimum needed)
  4713. handler should be a much more lightweight operation than launching Excel.
  4714.  
  4715. Another strategy would be to make resolution in a more general sense the
  4716. deciding factor on whether you need a part handler - to print to higher
  4717. resolution device, to open the object to edit it, to display it on a
  4718. screen with more colours etc.
  4719. -- 
  4720. Philip Machanick                   philip@cs.wits.ac.za
  4721. Department of Computer Science, University of the Witwatersrand
  4722. 2050 Wits, South Africa        (at University of Cape Town 4 July-7 Nov)
  4723. phone 27(11)716-3309  fax 27(11)339-7965
  4724.  
  4725. ---------------------------
  4726.  
  4727. >From alain@cs.uchicago.edu (Alain Aslag Roy)
  4728. Subject: Linking with QuickTime.xcoff for the power pc
  4729. Date: Tue, 13 Sep 1994 03:44:44 GMT
  4730. Organization: It lurks in the night.
  4731.  
  4732. I've been working on an application that uses QuickTime 2.0 on the power 
  4733. macintosh. I figured out how to link with the Import library for quicktime
  4734. (I got it from the Beta CD) and it works fine. Until I launch the program
  4735. in a low memory situation. Then I get a message about not being able to 
  4736. find the QuickTime Libary or something like that. If I free up some memory,
  4737. I don't have that problem.
  4738.  
  4739. Now, I'd really like it if I could handle this error on my own instead of the
  4740. system handling it for me. My program doesn't require QuickTime, but can use
  4741. it if it's there. Is there a way for me to prevent the system from reporting
  4742. this error and for me to handle it myself?
  4743.  
  4744. I'm using MPW with PPCC (The RISC SDK), the most recent version, if that 
  4745. matters.
  4746.  
  4747. Thanks in advance for any advice.
  4748.  
  4749. -alain
  4750.  
  4751. +++++++++++++++++++++++++++
  4752.  
  4753. >From zstern@adobe.com (Zalman Stern)
  4754. Date: Tue, 13 Sep 1994 20:58:20 GMT
  4755. Organization: Adobe Systems Incorporated
  4756.  
  4757. Alain Aslag Roy writes
  4758. [Program fails to launch when QuickTime library cannot be loaded, say for  
  4759. low memory reasons, or because it is not isntalled.]
  4760. > Now, I'd really like it if I could handle this error on my own instead of  
  4761. the
  4762. > system handling it for me.
  4763. > I'm using MPW with PPCC (The RISC SDK), the most recent version, if that 
  4764. > matters.
  4765.  
  4766. You want to make the linkage of the library "weak". This is done by adding a  
  4767. tilde after the library name in the argument to the makepef command. Like  
  4768. so:
  4769.     makepef <...> -l QuickTimeLib.xcoff=QuickTimeLib~
  4770.  
  4771. Figuring out if the library is actually there or not is another story. In  
  4772. theory there is a gestalt selector to do this, but it doesn't work. Instead  
  4773. you should test if a routine you use from the QuickTime library is NULL or  
  4774. not. The whole mass of code I put in to MacApp to deal with this looks like  
  4775. so:
  4776.  
  4777. /* Start with the Gestalt in as for a 68k. */
  4778.     theConfiguration.hasCompressionManager = Gestalt (gestaltCompressionMgr,  
  4779. response) == noErr;
  4780.  
  4781. /* For PowerPC make sure we can actually call QuickTime if its there...
  4782.  * This piece of code is incredibly screwed up because we link to QuickTime
  4783.  * weakly. Meaning that if the library is not there, undefined externals
  4784.  * referencing that library do not keep us from running. However, there
  4785.  * seems to be a case where the library is there, but cannot be loaded due
  4786.  * to a lack of memory. In this case, the gestalt call says its there, but
  4787.  * the routines we call are still NULL. So what the hell, I just check one
  4788.  * of the routines that is supposed to be in that library.
  4789.  */
  4790. #ifdef __powerc
  4791.     theConfiguration.hasCompressionManager =
  4792.     (theConfiguration.hasCompressionManager &&
  4793.         (Gestalt(gestaltQuickTimeFeatures, response) == noErr) &&
  4794.         (response & (1 << gestaltPPCQuickTimeLibPresent)) &&
  4795.         &CustomGetFilePreview != NULL);
  4796. #endif
  4797. --
  4798. Zalman Stern           zalman@adobe.com            (415) 962 3824
  4799. Adobe Systems, 1585 Charleston Rd., POB 7900, Mountain View, CA 94039-7900
  4800.  Please do not change color while I am talking to you -- MC 900 Ft Jesus.
  4801.  
  4802. ---------------------------
  4803.  
  4804. >From gmcgath@condes.mv.com (Gary McGath)
  4805. Subject: Multiple monitors
  4806. Date: Sun, 4 Sep 1994 13:14:42 GMT
  4807. Organization: Conceptual Design
  4808.  
  4809. As a result of my unusual monitor configuration, I've developed an 
  4810. awareness of problems that often crop up in applications whose 
  4811. programmers fail to think about multiple monitors. Here are  
  4812. my suggestions for good multiple monitor programming style; I 
  4813. welcome additions and comments. Perhaps someone would care to throw
  4814. in some suggestions for Pivot monitors to go with these?
  4815.  
  4816. To figure the maximum window size, check the GrayRgn, not ScreenBits. 
  4817. The user should be able to size a window across two monitors, or to 
  4818. stretch it to the dimensions of a screen that may be bigger than the 
  4819. main screen.
  4820.  
  4821. Don't assume that just because the main device is monochrome, the system 
  4822. doesn't have color. Use GetMaxDevice.
  4823.  
  4824. If it's important that a new window be displayed in color, put it on the 
  4825. screen with the greatest depth. This is especially important with 
  4826. non-draggable dialogs. It's frustrating to have a color picker 
  4827. window nailed to a monochrome monitor when there's a perfectly good 
  4828. color monitor next to it.
  4829.  
  4830. If you have a graphic with both monochrome and color versions, check 
  4831. which device it's being drawn to when deciding which version to use. 
  4832. (Some calls, such as PlotCIcon, will do this automatically.) 
  4833.  
  4834. Clicking on the zoom box of a window should position it in the screen
  4835. which it's currently occupying, rather than always hauling it to the 
  4836. main device. (Defining which screen a window is occupying in the general
  4837. case is tricky, to be sure.)
  4838.  
  4839. Remember that if your window occupies the whole main screen, it doesn't
  4840. necessarily occupy all of the desktop. It's still possible for the
  4841. user to click outside the window.
  4842.  
  4843. When bringing up a window, be sure that at least its title bar is on the
  4844. screen. If the user plays with the Monitors control panel and then 
  4845. reboots, a window which was on screen last time may be out of reach
  4846. this time. Some old DA's are especially bad about this, and can 
  4847. permanently vanish into offscreen limbo.
  4848.  
  4849. -- 
  4850.           Gary McGath
  4851.           gmcgath@condes.mv.com
  4852.  
  4853. +++++++++++++++++++++++++++
  4854.  
  4855. >From h+@nada.kth.se (Jon W{tte)
  4856. Date: Mon, 05 Sep 1994 17:34:25 +0200
  4857. Organization: Royal Institute of Something or other
  4858.  
  4859. >To figure the maximum window size, check the GrayRgn, not ScreenBits. 
  4860.  
  4861. Yes. Most apps that do this wrong, can be coerced by using the 
  4862. command key when resizing the window.
  4863.  
  4864. >Don't assume that just because the main device is monochrome, the system 
  4865. >doesn't have color. Use GetMaxDevice.
  4866.  
  4867. However, GetMaxDevice crashes on non-color machines, and if 
  4868. those are a factor, you have to check some more. I recently did 
  4869. an about box for someone else, which went pretty much like this:
  4870.  
  4871. depth = 1 ;
  4872.  
  4873. Is there color QD?
  4874. If yes, is there QuickTime?
  4875. If yes, depth = depth of GetMaxDevice()
  4876. If depth < 8, depth = 1
  4877.  
  4878. Load and draw pictures using b/w if depth = 1, else color. If 
  4879. depth is 8, use the palette of the screen the window's on 
  4880. (which is the deepest screen, to show off the colors :-)
  4881.  
  4882. QuickTime is required because of the JPEG about picture. Code 
  4883. and images for 24-bit color and black/white come in at under 40k!
  4884.  
  4885. >If you have a graphic with both monochrome and color versions, check 
  4886. >which device it's being drawn to when deciding which version to use. 
  4887. >(Some calls, such as PlotCIcon, will do this automatically.) 
  4888.  
  4889. Use DeviceLoop()
  4890.  
  4891. >Clicking on the zoom box of a window should position it in the screen
  4892. >which it's currently occupying, rather than always hauling it to the 
  4893.  
  4894. Yes! The screen with the most pixels of the window on it. It 
  4895. should also move the window as little as possible, i e first 
  4896. grow it down/right until it can grow it no more; then keep 
  4897. growing up-left 'til the screen is full.
  4898.  
  4899. >When bringing up a window, be sure that at least its title bar is on the
  4900. >screen. If the user plays with the Monitors control panel and then 
  4901.  
  4902. Yeah, this is a killer. I have an FKEY that staggers all visible 
  4903. app windows. Can do funky things to palettes, but saves the day 
  4904. occasionally :-)
  4905.  
  4906. Cheers,
  4907.  
  4908.                 / h+
  4909.  
  4910.  
  4911.  
  4912. --
  4913.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  4914.    This signature is kept shorter than 4 lines in the interests of UseNet
  4915.    S/N ratio.
  4916.  
  4917.  
  4918. +++++++++++++++++++++++++++
  4919.  
  4920. >From neil_ticktin@xplain.com (Neil Ticktin)
  4921. Date: Mon, 5 Sep 1994 17:54:25 GMT
  4922. Organization: MacTech Magazine/Xplain Corporation
  4923.  
  4924. In article <gmcgath-0409940814420001@condes.mv.com>, gmcgath@condes.mv.com
  4925. (Gary McGath) wrote:
  4926.  
  4927. >> As a result of my unusual monitor configuration, I've developed an 
  4928. >> awareness of problems that often crop up in applications whose 
  4929. >> programmers fail to think about multiple monitors. Here are  
  4930. >> my suggestions for good multiple monitor programming style; I 
  4931. >> welcome additions and comments. Perhaps someone would care to throw
  4932. >> in some suggestions for Pivot monitors to go with these?
  4933.  
  4934.  
  4935. Gary,
  4936.  
  4937. We found the similar things.  We published an article about how to support
  4938. multiple monitors a couple issues back.  We hope, as you do, that people
  4939. will provide more support for multiple monitors -- it's annoying when they
  4940. don't.
  4941.  
  4942. Thanks,
  4943. Neil
  4944.  
  4945. - ---------------------------------------------------------------------
  4946.            Neil Ticktin, MacTech Magazine (formerly MacTutor)
  4947. PO Box 250055, Los Angeles, CA 90025 * 310-575-4343 * Fax: 310-575-0925
  4948.  For more info, anonymous ftp to ftp.netcom.com and cd to /pub/xplain
  4949.   custservice@xplain.com * editorial@xplain.com * adsales@xplain.com
  4950. marketing@xplain.com * accounting@xplain.com * pressreleases@xplain.com
  4951.    progchallenge@xplain.com * publisher@xplain.com * info@xplain.com
  4952.  
  4953. +++++++++++++++++++++++++++
  4954.  
  4955. >From jonpugh@netcom.com (Jon Pugh)
  4956. Date: Mon, 5 Sep 1994 20:02:00 GMT
  4957. Organization: Will hack for food
  4958.  
  4959. Gary McGath (gmcgath@condes.mv.com) wrote:
  4960. > When bringing up a window, be sure that at least its title bar is on the
  4961. > screen. If the user plays with the Monitors control panel and then 
  4962. > reboots, a window which was on screen last time may be out of reach
  4963. > this time. Some old DA's are especially bad about this, and can 
  4964. > permanently vanish into offscreen limbo.
  4965.  
  4966. I only require that the 16 bits or so of the left or right end of the title
  4967. bar be on screen.  This allows you to slam a window offscreen into the bottom 
  4968. corners of the screen and remain there after it is closed and reopened.  I
  4969. suppose it doesn't catch the big window with both ends off screen, but I
  4970. don't think anyone's managed to get that and not minded it being reset.
  4971.  
  4972. We regularly get into window wars at work via Projector.  My compatriot has
  4973. his menubar on the little color screen (for some of the reasons outlined
  4974. before) and edits on a large b&w monitor next to it.  Then he checks in 
  4975. and I open the window half off my little color monitor and not on my 16"
  4976. color monitor.  Since the title bar is on screen, it doesn't move though.
  4977. I don't see a good way to fix this without saving the entire monitor setup.
  4978.  
  4979. Jon
  4980.  
  4981.  
  4982. +++++++++++++++++++++++++++
  4983.  
  4984. >From Charles B. Cranston <zben@ni.umd.edu>
  4985. Date: 6 Sep 1994 19:55:23 GMT
  4986. Organization: Network Infrastructure U Maryland College Park
  4987.  
  4988. It may be worth mentioning that there is an Apple Human Interface
  4989. Note on the right things to do for multiple monitors, and this
  4990. information has also been integrated into the McGraw Hill
  4991. "Macintosh Human Interface Guidelines", mostly in chapter 5.
  4992.  
  4993. It is amazing how much software does NOT do the right things,
  4994. even MPW didn't zoom correctly until 3.3 came out...
  4995.  
  4996. +++++++++++++++++++++++++++
  4997.  
  4998. >From joseph@joebloe.maple-shade.nj.us (Joseph "Moof-in'" Hall)
  4999. Date: Thu, 8 Sep 94 01:36:24 MST
  5000. Organization: comp.sys.mac.programmer.moof Advocacy
  5001.  
  5002.  
  5003. In article <jonpughCvoABD.6Bn@netcom.com> (comp.sys.mac.programmer), jonpugh@netcom.com (Jon Pugh) writes:
  5004. ) We regularly get into window wars at work via Projector.  My compatriot has
  5005. ) his menubar on the little color screen (for some of the reasons outlined
  5006. ) before) and edits on a large b&w monitor next to it.  [...]
  5007.  
  5008. I've wondered why apps don't save window position as an offset
  5009. relative to the nearest corner or something like that.  It would certainly
  5010. solve some window placement disputes.
  5011.  
  5012. =============== O Fortuna, velut Luna, statu variabilis ===============
  5013. uunet!joebloe!joseph   (602) 732-2549 day   joseph%joebloe@uunet.uu.net
  5014. 1400 N Alma School                #163               Chandler, AZ 85224
  5015. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  5016.            Be hip!  Support comp.sys.mac.programmer.moof!
  5017.  
  5018. +++++++++++++++++++++++++++
  5019.  
  5020. >From jonpugh@netcom.com (Jon Pugh)
  5021. Date: Sat, 10 Sep 1994 22:10:28 GMT
  5022. Organization: Will hack for food
  5023.  
  5024. Joseph "Moof-in'" Hall (joseph@joebloe.maple-shade.nj.us) wrote:
  5025.  
  5026. > I've wondered why apps don't save window position as an offset
  5027. > relative to the nearest corner or something like that.  It would certainly
  5028. > solve some window placement disputes.
  5029.  
  5030. That doesn't save your window size.  It's simple to just store the rect.
  5031. Of course, it wouldn't be much harder to store the offset point and the 
  5032. window height and width point either.  Sounds like it's time for some 
  5033. experimentation to see if this would buy you anything.  It sounds identical
  5034. in most cases though.
  5035.  
  5036. Jon
  5037.  
  5038.  
  5039. +++++++++++++++++++++++++++
  5040.  
  5041. >From ari@world.std.com
  5042. Date: Thu, 15 Sep 1994 06:02:23 GMT
  5043. Organization: The World Public Access UNIX, Brookline, MA
  5044.  
  5045. In article <9668AA910721.386931@klkmac014.nada.kth.se>,
  5046. Jon W{tte <h+@nada.kth.se> wrote:
  5047. >>If you have a graphic with both monochrome and color versions, check 
  5048. >>which device it's being drawn to when deciding which version to use. 
  5049. >>(Some calls, such as PlotCIcon, will do this automatically.) 
  5050. >
  5051. >Use DeviceLoop()
  5052.  
  5053. While working on my popup CDEF, I ran into a problem drawing a color
  5054. image from an offscreen graphics world when the destination rectangle
  5055. spanned two monitors with different depths. The problem arose because
  5056. the offscreen gworld was created with the depth of the deepest
  5057. monitor. The portion of the image that was copied to the color monitor
  5058. was displayed perfectly. But the portion of the image that was copied
  5059. to the black and white monitor was real ugly, since all the color
  5060. pixels got mapped to black. The only solution I could find was to use
  5061. a DeviceLoop when drawing an image that spans monitors of different
  5062. depths. Unfortunately, this meant that I couldn't use the offscreen
  5063. gworld, and the image flickers if it spans monitors with different
  5064. depths.
  5065.  
  5066. -- 
  5067. Ari Halberstadt                                 ari@world.std.com
  5068. One generation passes away, and another generation comes: but the
  5069. earth abides for ever. -- Ecclesiastes, 1:4.
  5070.  
  5071. +++++++++++++++++++++++++++
  5072.  
  5073. >From ari@world.std.com
  5074. Date: Thu, 15 Sep 1994 06:08:21 GMT
  5075. Organization: The World Public Access UNIX, Brookline, MA
  5076.  
  5077. In article <34ihfb$8c2@haven.umd.edu>,
  5078. Charles B. Cranston  <zben@ni.umd.edu> wrote:
  5079. >It is amazing how much software does NOT do the right things,
  5080. >even MPW didn't zoom correctly until 3.3 came out...
  5081.  
  5082. Well, I still think MPW misses the mark. And SADE and HyperCard are
  5083. *very* annoying. I put the Worksheet window in SADE on my small
  5084. monitor and put the source code window on my big monitor. Then, when I
  5085. hit command-F to search for something, the find dialog pops up
  5086. way-over-there on the little monitor; BLECH! HyperCard does similar
  5087. stupid things. And THINK C 7.0 even stuck my windows OFF SCREEN!!!
  5088. YES, I OPENED A WINDOW AND ITS TITLE BAR WAS HIDDEN BEHIND THE MENU
  5089. BAR! Fortunately, I've been using macs for far too long, and promptly
  5090. broke into MacsBug and set MBarHeight to 0 and dragged the windows
  5091. back to somewhere more accessable. (The alternative of editing the
  5092. menu record with MacsBug, with the associated structure and content
  5093. regions, etc. just was out of the question; I don't know what I would
  5094. have done with a PowerPC!)
  5095. -- 
  5096. Ari Halberstadt                                 ari@world.std.com
  5097. One generation passes away, and another generation comes: but the
  5098. earth abides for ever. -- Ecclesiastes, 1:4.
  5099.  
  5100. ---------------------------
  5101.  
  5102. >From qsi@cnh.wlink.nl (Peter Kocourek)
  5103. Subject: The 'aete' resource and the Script Editor
  5104. Date: 07 Sep 94 01:24:16 +
  5105. Organization: Care Net Holland
  5106.  
  5107. Hi,
  5108.  
  5109. I just had strange problem with the Script Editor and the 'aete' resource. I
  5110. had already added a few events to the aete resource, and everything was
  5111. working fine. Then I added a simple event, with no required parameters or any
  5112. fancy stuff. That's when the weirdness began.
  5113.  
  5114. When I sent the event to myself, everything was fine. But when I tried to send
  5115. the event from the Script Editor, my event handler returned errAEParamMissed,
  5116. when I was making the routine check for missed parameters. Yet I had indicated
  5117. in the aete, that the event did not have any parameters...
  5118.  
  5119. So, trying to find out what kind of parameter the Script Editor was passing
  5120. along, I discovered that the type of the missed parameter was 'keyw', and the
  5121. type of keyword I'd missed was '----'. I merrily put in code to get the
  5122. parameter, but that call to AEGetParamPtr came back with errAEDescNotFound,
  5123. even though I had just extracted the relevant information about the missing
  5124. parameter from the AppleEvent!
  5125.  
  5126. I checked the Event Log in the Script Editor, and sure enough, when sending my
  5127. event "foo", the Log said it had sent "foo current application". And that
  5128. despite the fact that it said in the aete resource that I wanted no
  5129. parameters, direct or otherwise.
  5130.  
  5131. Ultimately, after a lot of frustration, I found the cause of the problem: in
  5132. the aete resource, I had specified a the direct parameter as being of type
  5133. typeNull, but I had the "is optional" flag off. Once I switched that on,
  5134. everything worked fine.
  5135.  
  5136. Is this the way the Script Editor is supposed to behave? I thought that a
  5137. typeNull type indicated that no parameter was to be included under any
  5138. circumstances. And the errAEDescNotFound still bothers me. If I find the type
  5139. of the missed parameter, surely I should be able to extract it from the
  5140. AppleEvent; in this case the AE Manager seemed to be telling me that there is
  5141. an additional parameter in there, but that it can't find it. What's going on?
  5142.  
  5143.  
  5144. YHS:QSI!
  5145.  
  5146. +++++++++++++++++++++++++++
  5147.  
  5148. >From jonpugh@netcom.com (Jon Pugh)
  5149. Date: Sat, 10 Sep 1994 21:53:36 GMT
  5150. Organization: Will hack for food
  5151.  
  5152. Peter Kocourek (qsi@cnh.wlink.nl) wrote:
  5153.  
  5154. > I just had strange problem with the Script Editor and the 'aete' resource. 
  5155.  
  5156. > [snip]
  5157.  
  5158. > Ultimately, after a lot of frustration, I found the cause of the problem: in
  5159. > the aete resource, I had specified a the direct parameter as being of type
  5160. > typeNull, but I had the "is optional" flag off. Once I switched that on,
  5161. > everything worked fine.
  5162.  
  5163. Ed Lai has been telling people to make sure they set the optional bit if
  5164. they used a direct parameter of typeNull (i.e. none) for quite some time.  I
  5165. guess now we know why.  ;)
  5166.  
  5167. Regardless of whether it is intential or not, it is the way it works, so be
  5168. sure to do this.
  5169.  
  5170. Jon
  5171.  
  5172. +++++++++++++++++++++++++++
  5173.  
  5174. >From lai@apple.com (Ed Lai)
  5175. Date: 14 Sep 1994 16:16:31 GMT
  5176. Organization: Apple
  5177.  
  5178. In article <4cb_9409071502@cnh.wlink.nl>, qsi@cnh.wlink.nl (Peter Kocourek)
  5179. wrote:
  5180.  
  5181. > Hi,
  5182. > I just had strange problem with the Script Editor and the 'aete' resource. I
  5183. > had already added a few events to the aete resource, and everything was
  5184. > working fine. Then I added a simple event, with no required parameters or any
  5185. > fancy stuff. That's when the weirdness began.
  5186. > When I sent the event to myself, everything was fine. But when I tried to send
  5187. > the event from the Script Editor, my event handler returned errAEParamMissed,
  5188. > when I was making the routine check for missed parameters. Yet I had indicated
  5189. > in the aete, that the event did not have any parameters...
  5190. > So, trying to find out what kind of parameter the Script Editor was passing
  5191. > along, I discovered that the type of the missed parameter was 'keyw', and the
  5192. > type of keyword I'd missed was '----'. I merrily put in code to get the
  5193. > parameter, but that call to AEGetParamPtr came back with errAEDescNotFound,
  5194. > even though I had just extracted the relevant information about the missing
  5195. > parameter from the AppleEvent!
  5196. > I checked the Event Log in the Script Editor, and sure enough, when sending my
  5197. > event "foo", the Log said it had sent "foo current application". And that
  5198. > despite the fact that it said in the aete resource that I wanted no
  5199. > parameters, direct or otherwise.
  5200. > Ultimately, after a lot of frustration, I found the cause of the problem: in
  5201. > the aete resource, I had specified a the direct parameter as being of type
  5202. > typeNull, but I had the "is optional" flag off. Once I switched that on,
  5203. > everything worked fine.
  5204. > Is this the way the Script Editor is supposed to behave? I thought that a
  5205. > typeNull type indicated that no parameter was to be included under any
  5206. > circumstances. And the errAEDescNotFound still bothers me. If I find the type
  5207. > of the missed parameter, surely I should be able to extract it from the
  5208. > AppleEvent; in this case the AE Manager seemed to be telling me that there is
  5209. > an additional parameter in there, but that it can't find it. What's going on?
  5210. > YHS:QSI!
  5211.  
  5212. This is not a problem with the script editor. I always consider this to
  5213. be a problem of AppleScript, although I was told there are reason to do
  5214. it that way so it can not be fixed. As you discoverd, if the direct 
  5215. parameter is of type typeNull, then AppleScript would send a typeNull
  5216. as the direct parameter. The AppleEvent manager checks every parameter
  5217. you have accessed. If you ask for parameter missed, then it returns
  5218. the keyword '----'. When you try to get the direct parameter, AEM
  5219. found the type to be typeNull, which means no parameter, so
  5220. AEM got fooled has say errAEDescNotFound. The last part can be
  5221. considered to be an AEM bug, although it is almost excusable.
  5222. -- 
  5223. /* Disclaimer: All statments and opinions expressed are my own */
  5224. /* Edmund K. Lai                                               */
  5225. /* Apple Computer, MS303-3A                                    */
  5226. /* 20525 Mariani Ave,                                          */
  5227. /* Cupertino, CA 95014                                         */
  5228. /* (408)974-6272                                               */
  5229. zW@h9cOi
  5230.  
  5231. ---------------------------
  5232.  
  5233. >From eschen@molbio.cbs.umn.edu (Art Eschenlauer)
  5234. Subject: can extensions send appleevents?
  5235. Date: Wed, 14 Sep 1994 13:07:32 GMT
  5236. Organization: University of Minnesota, Twin Cities
  5237.  
  5238. Last night I was plughing around in my System 7.0.1 software, looking at
  5239. SIZE resources. I found that the Finder has the HighLevelEventAware flag
  5240. set but that the System does not. The dogma is that to send AppleEvents success-
  5241. fully using AESend, an 'application' must have the HighLevelEventAware flag
  5242. set. I want to send appleevents from an extension that is called via patches
  5243. to drawmenubar, systemmenu, and menuselect from within ANY application (that
  5244. uses the menubar). How will I get in trouble here? 1. Will I be hosed if the
  5245. calling app is not HighLevelEventAware? 2. Will I be hosed all the time because
  5246. the system is not HighLevelEventAware? 3. By some bizarre quirk of fate, will
  5247. I be successful all the time because the Finder is HighLevelEventAware (I want
  5248. to send 'odoc' events) or because code resources aren't restricted by th
  5249. HighLevelEventAware bit? 4. Am I hosed all the time because code resources
  5250. cannot send appleevents?
  5251.  
  5252. Thanks!
  5253.  
  5254. -Art
  5255.  
  5256. --
  5257. eschen@molbio.cbs.umn.edu (Art Eschenlauer, U of M Agronomy & Plant Genetics)
  5258. "The only things that you can take with you are those that you have given
  5259. away." - Sign under Peter Bailey's picture in "It's a Wonderful Life"
  5260.  
  5261. +++++++++++++++++++++++++++
  5262.  
  5263. >From tnleeuw@cs.vu.nl (Leeuw van der TN)
  5264. Date: Wed, 14 Sep 1994 14:42:54 GMT
  5265. Organization: Fac. Wiskunde & Informatica, VU, Amsterdam
  5266.  
  5267. Maybe you could make your Control Panel communicate with a background
  5268. application, that sends the AppleEvents to the Finder?
  5269. I think you can use Gestalt for that.
  5270.  
  5271. Just a passing thought.
  5272.  
  5273. --Tim van der Leeuw
  5274. tnleeuw@cs.vu.nl
  5275.  
  5276.  
  5277. +++++++++++++++++++++++++++
  5278.  
  5279. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  5280. Date: Wed, 14 Sep 1994 20:52:09 GMT
  5281. Organization: Apple Computer
  5282.  
  5283. Art Eschenlauer, eschen@molbio.cbs.umn.edu writes:
  5284. > I want to send appleevents from an extension that is called via patches
  5285. > to drawmenubar, systemmenu, and menuselect from within ANY application (that
  5286. > uses the menubar). How will I get in trouble here?
  5287.  
  5288. The Apple Event Manager doesn't care what _code_ is running, only what
  5289. _process_ is active. If your patch tries to send an AE, what happens depends
  5290. on what app (the Finder is an app) is currently active. If it's AE-aware (as
  5291. per the SIZE rsrc) you'll succeed. If not, you'll fail, probably with the
  5292. infamous -903 error.
  5293. These days most apps are AE-aware, but some still are not.
  5294. Extensions like QuicKeys and KeyQuencer get around this problem by having a
  5295. small faceless bg app that they can have send the event for them. Of course,
  5296. you have to have some way of telling the app to send an event; this probably
  5297. boils down to some shared memory that you access via a Gestalt selector.
  5298.  
  5299. --Jens Alfke                           jens_alfke@powertalk.apple.com
  5300.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  5301.  
  5302. +++++++++++++++++++++++++++
  5303.  
  5304. >From gurgle@dnai.com (Pete Gontier)
  5305. Date: Thu, 15 Sep 1994 00:27:49 -0800
  5306. Organization: Integer Poet Software
  5307.  
  5308. In article <Cw4FJG.Dvw@news.cis.umn.edu>, eschen@molbio.cbs.umn.edu (Art
  5309. Eschenlauer) wrote:
  5310.  
  5311. > 1. Will I be hosed if the calling app is not HighLevelEventAware?
  5312.  
  5313. Yes.
  5314.  
  5315. > 2. Will I be hosed all the time because the system is not HighLevelEventAware?
  5316.  
  5317. No.
  5318.  
  5319. > 3. By some bizarre quirk of fate, will
  5320. > I be successful all the time because the Finder is HighLevelEventAware (I want
  5321. > to send 'odoc' events) or because code resources aren't restricted by th
  5322. > HighLevelEventAware bit?
  5323.  
  5324. No.
  5325.  
  5326. > 4. Am I hosed all the time because code resources cannot send appleevents?
  5327.  
  5328. No.
  5329.  
  5330. Your point #1 is the important one here. When you call the AppleEvent
  5331. Manager, everything it wants to know is based on the context of the
  5332. current application. So when your code resource calls the AEM, you can
  5333. pretend the AEM "thinks" that the current application is making the call.
  5334.  
  5335. Consequently, if you can arrange for the calling app to be AE-aware, you
  5336. win. Since Finder is guaranteed to be AE-aware, you might be able to defer
  5337. sending your AE until Finder becomes the curreent app. (You can call
  5338. WakeUpProcess against it to make sure this happens quickly.)
  5339.  
  5340. Receiving AppleEvents is another matter entirely, of course, because your
  5341. handlers could conflict with the handlers of the current application.
  5342. There is probably a way to deal with this, but I haven't had to
  5343. investigate it yet, so I don't know much more than this.
  5344.  
  5345. There are some folks who know about undocumented interfaces to the AEM
  5346. which ignore the AE-aware status of the current app. These people claim
  5347. that even though the interfaces are undocumented there is enough
  5348. third-party software which uses the interfaces that it's unlikely Apple
  5349. will be able to break these interfaces in the future. (Probably these
  5350. people have written some of that software.) I won't names names to protect
  5351. the innocent, but now that I have mentioned this, perhaps someone will
  5352. pipe up.
  5353.  
  5354. -- 
  5355.  
  5356.  Pete Gontier // CTO, Integer Poet Software // gurgle@dnai.com
  5357.  
  5358.  "Yeah, that's fucking bizarre. That's one I'd never heard before. 
  5359.   Not even on the internet."
  5360.      -- Bob Mould, on rumors that he and Grant Hart were lovers
  5361.         when H¸sker D¸ broke up, _Spin_ magazine interview, 10/94
  5362.  
  5363. +++++++++++++++++++++++++++
  5364.  
  5365. >From fixer@faxcsl.dcrt.nih.gov (Chris Disavow Twinkies Tate)
  5366. Date: Thu, 15 Sep 1994 13:24:10 GMT
  5367. Organization: DCRT, NIH, Bethesda, MD
  5368.  
  5369. In article <gurgle-1509940027490001@dynamic-224.dnai.com>, gurgle@dnai.com (Pete Gontier) writes:
  5370. >
  5371. >Receiving AppleEvents is another matter entirely, of course, because your
  5372. >handlers could conflict with the handlers of the current application.
  5373. >There is probably a way to deal with this, but I haven't had to
  5374. >investigate it yet, so I don't know much more than this.
  5375.  
  5376. As I recall, there's sample code from DTS around called something like 
  5377. "AEcdev," which uses an FBA as an AppleEvent "dispatcher."  When you
  5378. want to send an AE from your (non-application) code, you talk to the
  5379. FBA (presumably launched at system startup?), and away it goes.
  5380.  
  5381. Now: I'd have to dig into how the code resource and the FBA communicate.
  5382. Can standalone code use bare PPC?  Or does it have to go through something
  5383. like the Gestalt mechanism that INIT/cdev combinations frequently use to
  5384. communicate?
  5385.  
  5386. Either way, it seems that one could come up with a (small) FBA whose job
  5387. it is to handle two-way dispatch of AppleEvents, passing them along to
  5388. the proper standalone-code recipients.  The real problem, I think, is
  5389. tracking which chunk of standalone code is supposed to be receiving a
  5390. given AppleEvent.  Hmmmm....
  5391.  
  5392. __________
  5393. Christopher Tate                                   fixer@faxcsl.dcrt.nih.gov
  5394. GM/CS$ d(--) H s:- g+ p0 au a- w+ v+(-*) C++ U+(--) E++ N++ K W---(++)$ M++$
  5395.    V+ -po+ Y+ t+ 5-- j+ G? tv b+++ D+++ e++ u++(---) h--- f r+++ n+ y+++
  5396.  
  5397. +++++++++++++++++++++++++++
  5398.  
  5399. >From gurgle@dnai.com (Pete Gontier)
  5400. Date: Thu, 15 Sep 1994 09:22:01 -0800
  5401. Organization: Integer Poet Software
  5402.  
  5403. In article <1994Sep15.132410.1393@alw.nih.gov>, fixer@faxcsl.dcrt.nih.gov wrote:
  5404.  
  5405. > As I recall, there's sample code from DTS around called something like 
  5406. > "AEcdev," which uses an FBA as an AppleEvent "dispatcher."  When you
  5407. > want to send an AE from your (non-application) code, you talk to the
  5408. > FBA (presumably launched at system startup?), and away it goes.
  5409. > Now: I'd have to dig into how the code resource and the FBA communicate.
  5410. > Can standalone code use bare PPC?
  5411.  
  5412. That, in fact, is how the DTS code sample you mention works. :-)
  5413.  
  5414. > Or does it have to go through something like the Gestalt mechanism that 
  5415. > INIT/cdev combinations frequently use to communicate?
  5416.  
  5417. And this is how I have done it in the past. PPC is too much of a hassle if
  5418. you have no event loop.
  5419.  
  5420. > The real problem, I think, is
  5421. > tracking which chunk of standalone code is supposed to be receiving a
  5422. > given AppleEvent.
  5423.  
  5424. Well, if you have a one-to-one relation between FBA and code resource,
  5425. there isn't much confusion. However, the original poster was talking about
  5426. sending an AppleEvent from within a patch to Menu Manager traps. I don't
  5427. think he's going to succeed in receiving an AppleEvent in such a context
  5428. no matter how hard he tries. :-)
  5429.  
  5430. -- 
  5431.  
  5432.  Pete Gontier // CTO, Integer Poet Software // gurgle@dnai.com
  5433.  
  5434.  "Yeah, that's fucking bizarre. That's one I'd never heard before. 
  5435.   Not even on the internet."
  5436.      -- Bob Mould, on rumors that he and Grant Hart were lovers
  5437.         when H¸sker D¸ broke up, _Spin_ magazine interview, 10/94
  5438.  
  5439. ---------------------------
  5440.  
  5441. End of C.S.M.P. Digest
  5442. **********************
  5443.  
  5444.  
  5445. ˇ